From 8ab3cdc09cfbac3157e996664616c229214f6c8d Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 21 Oct 2011 10:03:56 +0000
Subject: [PATCH] Merged revisions 2681-2739 from 3.0.4 stable branch.

---
 install/dist/lib/fedora.lib.php               |    8 +-
 install/dist/lib/gentoo.lib.php               |    2 +
 install/lib/installer_base.lib.php            |    2 +
 install/sql/incremental/upd_0026.sql          |    1 +
 install/sql/ispconfig3.sql                    |    2 +-
 install/tpl/config.inc.php.master             |    2 +-
 install/tpl/nginx_apps.vhost.master           |   36 +-
 install/tpl/server.ini.master                 |    2 +-
 .../lib/classes/custom_datasource.inc.php     |   25 +
 interface/lib/classes/listform.inc.php        |    2 +-
 .../lib/classes/listform_actions.inc.php      |   18 +-
 interface/lib/classes/remoting.inc.php        |   10 +-
 interface/lib/lang/hr.lng                     |   12 +-
 interface/lib/lang/it.lng                     |   44 +-
 interface/web/admin/form/server.tform.php     |   12 -
 .../web/admin/form/server_config.tform.php    |    2 +-
 .../web/admin/lib/lang/ar_server_config.lng   |    2 +-
 .../web/admin/lib/lang/bg_server_config.lng   |    2 +-
 .../web/admin/lib/lang/br_server_config.lng   |    2 +-
 .../web/admin/lib/lang/cz_server_config.lng   |    2 +-
 .../web/admin/lib/lang/de_server_config.lng   |   10 +-
 .../web/admin/lib/lang/el_server_config.lng   |    2 +-
 .../web/admin/lib/lang/en_server_config.lng   |    4 +-
 .../web/admin/lib/lang/es_server_config.lng   |    2 +-
 .../web/admin/lib/lang/fi_server_config.lng   |    2 +-
 .../web/admin/lib/lang/fr_server_config.lng   |    2 +-
 interface/web/admin/lib/lang/hr.lng           |   68 +-
 .../web/admin/lib/lang/hr_server_config.lng   |    2 +-
 .../web/admin/lib/lang/hu_server_config.lng   |    2 +-
 .../web/admin/lib/lang/id_server_config.lng   |    2 +-
 interface/web/admin/lib/lang/it.lng           |   22 +-
 interface/web/admin/lib/lang/it_firewall.lng  |    2 +-
 .../web/admin/lib/lang/it_firewall_list.lng   |    8 +-
 .../web/admin/lib/lang/it_groups_list.lng     |   10 +-
 .../admin/lib/lang/it_language_complete.lng   |    2 +-
 .../web/admin/lib/lang/it_language_edit.lng   |    4 +-
 .../web/admin/lib/lang/it_language_export.lng |    2 +-
 .../web/admin/lib/lang/it_language_import.lng |   12 +-
 .../web/admin/lib/lang/it_package_install.lng |    6 +-
 .../admin/lib/lang/it_remote_user_list.lng    |    6 +-
 interface/web/admin/lib/lang/it_server.lng    |   18 +-
 .../web/admin/lib/lang/it_server_config.lng   |   14 +-
 interface/web/admin/lib/lang/it_server_ip.lng |    6 +-
 .../web/admin/lib/lang/it_software_repo.lng   |    6 +-
 .../lib/lang/it_software_update_list.lng      |    4 +-
 .../web/admin/lib/lang/it_system_config.lng   |   16 +-
 interface/web/admin/lib/lang/it_users.lng     |   38 +-
 .../web/admin/lib/lang/it_users_list.lng      |    2 +-
 .../web/admin/lib/lang/ja_server_config.lng   |    2 +-
 .../web/admin/lib/lang/nl_server_config.lng   |    2 +-
 .../web/admin/lib/lang/pl_server_config.lng   |    2 +-
 .../web/admin/lib/lang/pt_server_config.lng   |    2 +-
 .../web/admin/lib/lang/ro_server_config.lng   |    2 +-
 .../web/admin/lib/lang/ru_server_config.lng   |    2 +-
 .../web/admin/lib/lang/se_server_config.lng   |    2 +-
 .../web/admin/lib/lang/sk_server_config.lng   |    2 +-
 .../web/admin/lib/lang/tr_server_config.lng   |    2 +-
 .../web/admin/templates/language_export.htm   |    2 +-
 .../templates/server_config_rescue_edit.htm   |    4 +-
 .../admin/templates/server_edit_services.htm  |   12 -
 interface/web/admin/templates/server_list.htm |    8 +-
 interface/web/client/client_del.php           |    2 +-
 interface/web/client/lib/lang/en_client.lng   |    4 +-
 interface/web/client/lib/lang/it.lng          |    8 +-
 interface/web/client/lib/lang/it_client.lng   |   18 +-
 .../web/client/lib/lang/it_client_del.lng     |    8 +-
 .../client/lib/lang/it_client_template.lng    |  118 +-
 .../web/client/lib/lang/it_clients_list.lng   |    4 +-
 .../web/client/lib/lang/it_resellers_list.lng |   12 +-
 .../dashboard/lib/lang/hr_dashlet_limits.lng  |    4 +-
 interface/web/dashboard/lib/lang/it.lng       |    4 +-
 .../dashboard/lib/lang/it_dashlet_limits.lng  |   54 +-
 .../dashboard/lib/lang/it_dashlet_modules.lng |    2 +-
 .../web/designer/lib/lang/it_form_edit.lng    |    2 +-
 .../web/designer/lib/lang/it_form_list.lng    |    6 +-
 .../web/designer/lib/lang/it_module_edit.lng  |    4 +-
 .../web/designer/lib/lang/it_module_list.lng  |    6 +-
 .../designer/lib/lang/it_module_nav_edit.lng  |    8 +-
 .../lib/lang/it_module_nav_item_edit.lng      |    8 +-
 .../web/designer/lib/lang/it_module_show.lng  |    6 +-
 interface/web/dns/dns_import.php              |  280 ++-
 interface/web/dns/dns_slave_edit.php          |    8 +-
 interface/web/dns/dns_soa_edit.php            |    8 +-
 interface/web/dns/form/dns_soa.tform.php      |    6 +-
 interface/web/dns/lib/lang/ar.lng             |    3 +
 interface/web/dns/lib/lang/bg.lng             |    3 +
 interface/web/dns/lib/lang/br.lng             |    3 +
 interface/web/dns/lib/lang/cz.lng             |    3 +
 interface/web/dns/lib/lang/de.lng             |    3 +
 interface/web/dns/lib/lang/el.lng             |    3 +
 interface/web/dns/lib/lang/en.lng             |    4 +-
 interface/web/dns/lib/lang/es.lng             |    3 +
 interface/web/dns/lib/lang/fi.lng             |    3 +
 interface/web/dns/lib/lang/fr.lng             |    3 +
 interface/web/dns/lib/lang/hr.lng             |   17 +-
 interface/web/dns/lib/lang/hr_dns_txt.lng     |   22 +-
 interface/web/dns/lib/lang/hr_dns_wizard.lng  |   46 +-
 interface/web/dns/lib/lang/hu.lng             |    3 +
 interface/web/dns/lib/lang/id.lng             |    3 +
 interface/web/dns/lib/lang/it.lng             |    3 +
 interface/web/dns/lib/lang/it_dns_soa.lng     |    2 +-
 interface/web/dns/lib/lang/ja.lng             |    3 +
 interface/web/dns/lib/lang/nl.lng             |    3 +
 interface/web/dns/lib/lang/pl.lng             |    3 +
 interface/web/dns/lib/lang/pt.lng             |    3 +
 interface/web/dns/lib/lang/ro.lng             |    3 +
 interface/web/dns/lib/lang/ru.lng             |    3 +
 interface/web/dns/lib/lang/se.lng             |    3 +
 interface/web/dns/lib/lang/sk.lng             |    3 +
 interface/web/dns/lib/lang/tr.lng             |    3 +
 interface/web/dns/templates/dns_import.htm    |   12 +-
 interface/web/domain/lib/lang/it.lng          |   14 +-
 interface/web/domain/lib/lang/it_domain.lng   |    8 +-
 .../web/domain/lib/lang/it_domain_list.lng    |    6 +-
 interface/web/help/lib/module.conf.php        |   31 +-
 interface/web/help/version.php                |    6 +-
 interface/web/js/scrigo.js.php                |    2 +-
 interface/web/login/lib/lang/hr.lng           |   28 +-
 interface/web/login/lib/lang/it.lng           |   16 +-
 interface/web/mail/lib/lang/it.lng            |   70 +-
 interface/web/mail/lib/lang/it_mail_alias.lng |   16 +-
 .../web/mail/lib/lang/it_mail_domain.lng      |   18 +-
 .../lib/lang/it_mail_domain_admin_list.lng    |   10 +-
 .../lib/lang/it_mail_user_filter_list.lng     |   10 +-
 .../web/mail/lib/lang/it_mail_user_list.lng   |    8 +-
 .../mail/lib/lang/it_mail_user_stats_list.lng |   10 +-
 .../lib/lang/it_spamfilter_config_list.lng    |    2 +-
 .../mail/lib/lang/it_spamfilter_whitelist.lng |    8 +-
 interface/web/mail/mail_domain_edit.php       |    8 +-
 interface/web/monitor/lib/lang/ar.lng         |    3 +
 interface/web/monitor/lib/lang/bg.lng         |    3 +
 interface/web/monitor/lib/lang/br.lng         |    3 +
 interface/web/monitor/lib/lang/cz.lng         |    3 +
 interface/web/monitor/lib/lang/de.lng         |    3 +
 interface/web/monitor/lib/lang/el.lng         |    3 +
 interface/web/monitor/lib/lang/en.lng         |    3 +
 interface/web/monitor/lib/lang/es.lng         |    3 +
 interface/web/monitor/lib/lang/fi.lng         |    3 +
 interface/web/monitor/lib/lang/fr.lng         |    3 +
 interface/web/monitor/lib/lang/hr.lng         |  207 +-
 .../web/monitor/lib/lang/hr_datalog_list.lng  |    2 +-
 interface/web/monitor/lib/lang/hu.lng         |    3 +
 interface/web/monitor/lib/lang/id.lng         |    3 +
 interface/web/monitor/lib/lang/it.lng         |   77 +-
 .../web/monitor/lib/lang/it_datalog_list.lng  |    2 +-
 .../web/monitor/lib/lang/it_syslog_list.lng   |    2 +-
 interface/web/monitor/lib/lang/ja.lng         |    3 +
 interface/web/monitor/lib/lang/nl.lng         |    3 +
 interface/web/monitor/lib/lang/pl.lng         |    3 +
 interface/web/monitor/lib/lang/pt.lng         |    3 +
 interface/web/monitor/lib/lang/ro.lng         |    3 +
 interface/web/monitor/lib/lang/ru.lng         |    3 +
 interface/web/monitor/lib/lang/se.lng         |    3 +
 interface/web/monitor/lib/lang/sk.lng         |    3 +
 interface/web/monitor/lib/lang/tr.lng         |    3 +
 interface/web/sites/ajax_get_ip.php           |    2 +-
 interface/web/sites/database_edit.php         |    8 +-
 .../web/sites/form/webdav_user.tform.php      |    7 +-
 .../web/sites/lib/lang/ar_shell_user.lng      |    1 +
 .../web/sites/lib/lang/bg_shell_user.lng      |    1 +
 .../web/sites/lib/lang/br_shell_user.lng      |    1 +
 .../web/sites/lib/lang/cz_shell_user.lng      |    1 +
 .../web/sites/lib/lang/de_shell_user.lng      |    1 +
 .../web/sites/lib/lang/el_shell_user.lng      |    1 +
 .../web/sites/lib/lang/en_shell_user.lng      |    1 +
 .../web/sites/lib/lang/es_shell_user.lng      |    1 +
 .../web/sites/lib/lang/fi_shell_user.lng      |    1 +
 .../web/sites/lib/lang/fr_shell_user.lng      |    1 +
 interface/web/sites/lib/lang/hr.lng           |   36 +-
 .../sites/lib/lang/hr_database_admin_list.lng |   14 +-
 .../web/sites/lib/lang/hr_shell_user.lng      |    1 +
 .../web/sites/lib/lang/hu_shell_user.lng      |    1 +
 .../web/sites/lib/lang/id_shell_user.lng      |    1 +
 interface/web/sites/lib/lang/it.lng           |   22 +-
 interface/web/sites/lib/lang/it_database.lng  |    4 +-
 .../web/sites/lib/lang/it_shell_user.lng      |    1 +
 .../lib/lang/it_user_quota_stats_list.lng     |   10 +-
 .../web/sites/lib/lang/it_web_domain.lng      |    4 +-
 .../web/sites/lib/lang/ja_shell_user.lng      |    1 +
 .../web/sites/lib/lang/nl_shell_user.lng      |    1 +
 .../web/sites/lib/lang/pl_shell_user.lng      |    1 +
 .../web/sites/lib/lang/pt_shell_user.lng      |    1 +
 .../web/sites/lib/lang/ro_shell_user.lng      |    1 +
 .../web/sites/lib/lang/ru_shell_user.lng      |    1 +
 .../web/sites/lib/lang/se_shell_user.lng      |    1 +
 .../web/sites/lib/lang/sk_shell_user.lng      |    1 +
 .../web/sites/lib/lang/tr_shell_user.lng      |    1 +
 interface/web/sites/shell_user_edit.php       |    2 +
 .../web/sites/templates/shell_user_edit.htm   |    4 +-
 .../sites/templates/web_aliasdomain_edit.htm  |   20 +-
 .../sites/templates/web_domain_redirect.htm   |    2 +-
 .../sites/templates/web_subdomain_edit.htm    |   21 +-
 interface/web/sites/web_domain_del.php        |   31 +-
 interface/web/sites/web_domain_edit.php       |   12 +-
 interface/web/temp/en.lng                     | 2131 -----------------
 .../web/tools/lib/lang/it_usersettings.lng    |    4 +-
 .../web/vm/lib/lang/de_openvz_template.lng    |    2 +-
 interface/web/vm/lib/lang/de_openvz_vm.lng    |    2 +-
 .../web/vm/lib/lang/en_openvz_template.lng    |    2 +-
 interface/web/vm/lib/lang/en_openvz_vm.lng    |    2 +-
 interface/web/vm/openvz_vm_edit.php           |    8 +-
 interface/web/vm/templates/openvz_ip_edit.htm |    8 +-
 .../examples/sites_web_domain_add.php         |    9 +-
 server/conf/awstats_index.php.master          |   20 +-
 server/conf/bind_pri.domain.master            |    2 +-
 server/conf/error/hr/400.html                 |   61 +
 server/conf/error/hr/401.html                 |   61 +
 server/conf/error/hr/403.html                 |   61 +
 server/conf/error/hr/404.html                 |   61 +
 server/conf/error/hr/405.html                 |   61 +
 server/conf/error/hr/500.html                 |   61 +
 server/conf/error/hr/502.html                 |   61 +
 server/conf/error/hr/503.html                 |   61 +
 server/conf/index/standard_index.html_hr      |   60 +
 server/conf/index/user_standard_index.html_hr |   60 +
 server/conf/mail/welcome_email_hr.txt         |    4 +
 server/conf/nginx_apps.vhost.master           |   36 +-
 server/conf/nginx_vhost.conf.master           |   10 +-
 server/conf/vhost.conf.master                 |   44 +-
 server/cron_daily.php                         |    2 +-
 server/lib/classes/monitor_tools.inc.php      |    3 +
 .../mods-available/rescue_core_module.inc.php |   32 +-
 .../plugins-available/apache2_plugin.inc.php  |  122 +-
 .../apps_vhost_plugin.inc.php                 |    2 +
 server/plugins-available/nginx_plugin.inc.php |  254 +-
 .../shelluser_base_plugin.inc.php             |   64 +-
 .../shelluser_jailkit_plugin.inc.php          |   68 +-
 227 files changed, 2453 insertions(+), 3084 deletions(-)
 create mode 100644 install/sql/incremental/upd_0026.sql
 delete mode 100644 interface/web/temp/en.lng
 create mode 100644 server/conf/error/hr/400.html
 create mode 100644 server/conf/error/hr/401.html
 create mode 100644 server/conf/error/hr/403.html
 create mode 100644 server/conf/error/hr/404.html
 create mode 100644 server/conf/error/hr/405.html
 create mode 100644 server/conf/error/hr/500.html
 create mode 100644 server/conf/error/hr/502.html
 create mode 100644 server/conf/error/hr/503.html
 create mode 100644 server/conf/index/standard_index.html_hr
 create mode 100644 server/conf/index/user_standard_index.html_hr
 create mode 100644 server/conf/mail/welcome_email_hr.txt

diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 6cb47183d9..4efb6fc3b1 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -865,11 +865,11 @@ class installer_dist extends installer_base {
 		if($conf['nginx']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-			if(is_user('ispapps')){
+			//if(is_user('ispapps')){
 				// Allow the ispapps vhost access to /etc/squirrelmail
-				$command = 'usermod -a -G '.$conf['apache']['group'].' ispapps';
-				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-			}
+				//$command = 'usermod -a -G '.$conf['apache']['group'].' ispapps';
+				//caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			//}
 			if(is_group('ispapps')){
 				$command = 'usermod -a -G ispapps '.$conf['nginx']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index 5aa5de18ff..ffe5ef2c26 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -653,6 +653,7 @@ class installer extends installer_base
 			if(substr($socket_dir,-1) != '/') $socket_dir .= '/';
 			if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir);
 			$fpm_socket = $socket_dir.'apps.sock';
+			$cgi_socket = escapeshellcmd($conf['nginx']['cgi_socket']);
 
 			$content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content);
 			$content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content);
@@ -660,6 +661,7 @@ class installer extends installer_base
 			$content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content);
 			//$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content);
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
+			$content = str_replace('{cgi_socket}', $cgi_socket, $content);
 
 			wf($vhost_conf_dir.'/apps.vhost', $content);
 			
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 232efe7611..b0cbfd650e 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1500,6 +1500,7 @@ class installer_base {
 			if(substr($socket_dir,-1) != '/') $socket_dir .= '/';
 			if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir);
 			$fpm_socket = $socket_dir.'apps.sock';
+			$cgi_socket = escapeshellcmd($conf['nginx']['cgi_socket']);
 
 			$content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content);
 			$content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content);
@@ -1507,6 +1508,7 @@ class installer_base {
 			$content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content);
 			//$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content);
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
+			$content = str_replace('{cgi_socket}', $cgi_socket, $content);
 
 			wf($vhost_conf_dir.'/apps.vhost', $content);
 			
diff --git a/install/sql/incremental/upd_0026.sql b/install/sql/incremental/upd_0026.sql
new file mode 100644
index 0000000000..b5787a925e
--- /dev/null
+++ b/install/sql/incremental/upd_0026.sql
@@ -0,0 +1 @@
+ALTER TABLE `shell_user` CHANGE `ssh_rsa` `ssh_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
\ No newline at end of file
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 96d04f6dbe..ff5b2ef9c9 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1026,7 +1026,7 @@ CREATE TABLE `shell_user` (
   `shell` varchar(255) NOT NULL default '/bin/bash',
   `dir` varchar(255) default NULL,
   `chroot` varchar(255) NOT NULL,
-  `ssh_rsa` VARCHAR( 600 ) NOT NULL default '',
+  `ssh_rsa` text NOT NULL,
   PRIMARY KEY  (`shell_user_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index d2517f2dc9..99d4402c47 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -122,7 +122,7 @@ $conf['init_scripts'] = '/etc/init.d';
 
 
 //** Interface
-$conf['interface_modules_enabled'] = 'dashboard,mail,sites,dns,tools';
+$conf['interface_modules_enabled'] = 'dashboard,mail,sites,dns,tools,help';
 
 //** Demo mode
 /* The demo mode is an option to restrict certain actions in the interface like 
diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master
index c7e58a3a2c..9de75dde6d 100644
--- a/install/tpl/nginx_apps.vhost.master
+++ b/install/tpl/nginx_apps.vhost.master
@@ -38,9 +38,15 @@ server {
                        try_files $uri =404;
                        root /usr/share/;
                        include /etc/nginx/fastcgi_params;
-                       fastcgi_pass unix:{fpm_socket};
+                       # To access phpMyAdmin, the default user (like www-data on Debian/Ubuntu) must be used
+                       fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
+                       fastcgi_param PATH_INFO $fastcgi_script_name;
+                       fastcgi_buffer_size 128k;
+                       fastcgi_buffers 256 4k;
+                       fastcgi_busy_buffers_size 256k;
+                       fastcgi_temp_file_write_size 256k;
                }
                location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;
@@ -57,9 +63,15 @@ server {
                        try_files $uri =404;
                        root /usr/share/;
                        include /etc/nginx/fastcgi_params;
-                       fastcgi_pass unix:{fpm_socket};
+                       # To access SquirrelMail, the default user (like www-data on Debian/Ubuntu) must be used
+                       fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
+                       fastcgi_param PATH_INFO $fastcgi_script_name;
+                       fastcgi_buffer_size 128k;
+                       fastcgi_buffers 256 4k;
+                       fastcgi_busy_buffers_size 256k;
+                       fastcgi_temp_file_write_size 256k;
                }
                location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;
@@ -68,4 +80,24 @@ server {
         location /webmail {
                rewrite ^/* /squirrelmail last;
         }
+
+        location /cgi-bin/mailman {
+               root /usr/lib/;
+               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
+               include /etc/nginx/fastcgi_params;
+               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+               fastcgi_param PATH_INFO $fastcgi_path_info;
+               fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
+               fastcgi_intercept_errors on;
+               fastcgi_pass unix:{cgi_socket};
+        }
+
+        location /images/mailman {
+               alias /usr/share/images/mailman;
+        }
+
+        location /pipermail {
+               alias /var/lib/mailman/archives/public;
+               autoindex on;
+        }
 }
\ No newline at end of file
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index d7a27e01a7..8817e00031 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -103,7 +103,7 @@ wget=/usr/bin/wget
 
 [rescue]
 try_rescue=n
-do_not_try_rescue_apache=n
+do_not_try_rescue_httpd=n
 do_not_try_rescue_mysql=n
 do_not_try_rescue_mail=n
 
diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php
index 52ba34ca57..43538d6b09 100644
--- a/interface/lib/classes/custom_datasource.inc.php
+++ b/interface/lib/classes/custom_datasource.inc.php
@@ -63,6 +63,31 @@ class custom_datasource {
 		return $records_new;
 	}
 	
+	function webdav_domains($field, $record) {
+		global $app, $conf;
+		
+		$servers = $app->db->queryAllRecords("SELECT * FROM server WHERE active = 1 AND mirror_server_id = 0");
+		$server_ids = array();
+		$app->uses('getconf');
+		if(is_array($servers) && !empty($servers)){
+			foreach($servers as $server){
+				$web_config = $app->getconf->get_server_config($server['server_id'], 'web');
+				if($web_config['server_type'] != 'nginx') $server_ids[] = $server['server_id'];
+			}
+		}
+		$server_ids = implode(',', $server_ids);
+		$records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND server_id IN (".$server_ids.") AND ".$app->tform->getAuthSQL('r')." ORDER BY domain");
+		
+		$records_new = array();
+		if(is_array($records)) {
+			foreach($records as $rec) {
+				$key = $rec['domain_id'];
+				$records_new[$key] = $rec['domain'];
+			}
+		}
+		return $records_new;
+	}
+	
 	
 	function client_servers($field, $record) {
 		global $app, $conf;
diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index f55df7b6a9..a5843d6603 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -282,7 +282,7 @@ class listform {
     public function decode($record) 
     {
         global $conf, $app;
-        if(is_array($record)) {
+        if(is_array($record) && count($record) > 0) {
             foreach($this->listDef['item'] as $field){
                 $key = $field['field'];
 				if(isset($record[$key])) {
diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php
index 70d6652080..a35aca9257 100644
--- a/interface/lib/classes/listform_actions.inc.php
+++ b/interface/lib/classes/listform_actions.inc.php
@@ -86,15 +86,17 @@ class listform_actions {
 		$rec['bgcolor'] = $this->DataRowColor;
 		
 		//* substitute value for select fields
-		foreach($app->listform->listDef['item'] as $field) {
-			$key = $field['field'];
-			if(isset($field['formtype']) && $field['formtype'] == 'SELECT') {
-				if(strtolower($rec[$key]) == 'y' or strtolower($rec[$key]) == 'n') {
-					// Set a additional image variable for bolean fields
-					$rec['_'.$key.'_'] = (strtolower($rec[$key]) == 'y')?'x16/tick_circle.png':'x16/cross_circle.png';
+		if(is_array($app->listform->listDef['item']) && count($app->listform->listDef['item']) > 0) {
+			foreach($app->listform->listDef['item'] as $field) {
+				$key = $field['field'];
+				if(isset($field['formtype']) && $field['formtype'] == 'SELECT') {
+					if(strtolower($rec[$key]) == 'y' or strtolower($rec[$key]) == 'n') {
+						// Set a additional image variable for bolean fields
+						$rec['_'.$key.'_'] = (strtolower($rec[$key]) == 'y')?'x16/tick_circle.png':'x16/cross_circle.png';
+					}
+					//* substitute value for select field
+					$rec[$key] = @$field['value'][$rec[$key]];
 				}
-				//* substitute value for select field
-				$rec[$key] = @$field['value'][$rec[$key]];
 			}
 		}
 		
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index 0dfed21eda..c3e0697c24 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -1353,6 +1353,12 @@ class remoting {
 		if($params['system_user'] == '') $params['system_user'] = '-';
 		if($params['system_group'] == '') $params['system_group'] = '-';
 		
+		//* Set a few defaults for nginx servers
+		if($params['pm_max_children'] == '') $params['pm_max_children'] = 1;
+		if($params['pm_start_servers'] == '') $params['pm_start_servers'] = 1;
+		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
+		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
+		
 		$domain_id = $this->insertQuery('../sites/form/web_domain.tform.php',$client_id,$params, 'sites:web_domain:on_after_insert');
 		if ($readonly === true)
 			$app->db->query("UPDATE web_domain SET `sys_userid` = '1' WHERE domain_id = ".$domain_id);
@@ -2521,8 +2527,8 @@ class remoting {
             return false;
 		}
         $client_id = intval($client_id);
-        $sql = "SELECT database_id, database_name, database_user, database_password FROM web_database WHERE sys_userid  = $client_id ";
-        $all = $app->db->queryAllRecords($sql);
+        $sql = "SELECT d.database_id, d.database_name, d.database_user, d.database_password FROM web_database d INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id";
+		$all = $app->db->queryAllRecords($sql);
         return $all;
 	}
 	
diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng
index 820a6899d0..937d88a3e6 100644
--- a/interface/lib/lang/hr.lng
+++ b/interface/lib/lang/hr.lng
@@ -33,6 +33,12 @@ $wb['top_menu_domain'] = 'Domene';
 $wb['top_menu_dashboard'] = 'Početna';
 $wb['toolsarea_head_txt'] = 'Postavke';
 $wb['latest_news_txt'] = 'Vijesti';
+$wb['error_301'] = 'Ne možete koristiti ovaj modul.';
+$wb['error_302'] = 'Greška u modulu.';
+$wb['error_1001'] = 'Korisničko ime i šifra ne mogu biti prazni!';
+$wb['error_1002'] = 'Korisničko ime i/ili šifra nisu ispravni!';
+$wb['error_1003'] = 'Korisničko ime je deaktivirano!';
+$wb['top_menu_vm'] = 'VServer';
 $wb['daynamesmin_su'] = 'Su';
 $wb['daynamesmin_mo'] = 'Mo';
 $wb['daynamesmin_tu'] = 'Tu';
@@ -61,10 +67,4 @@ $wb['monthnamesshort_nov'] = 'Nov';
 $wb['monthnamesshort_dec'] = 'Dec';
 $wb['datepicker_nextText'] = 'Next';
 $wb['datepicker_prevText'] = 'Prev';
-$wb['error_301'] = 'Module not permitted for the current user.';
-$wb['error_302'] = 'Module invalid.';
-$wb['error_1001'] = 'The username and password cannot be empty !';
-$wb['error_1002'] = 'The username and/or password are not correct !';
-$wb['error_1003'] = 'The username is deactivated!';
-$wb['top_menu_vm'] = 'VServer';
 ?>
diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng
index db062caaf3..772267ac07 100644
--- a/interface/lib/lang/it.lng
+++ b/interface/lib/lang/it.lng
@@ -1,20 +1,15 @@
 <?php
-$wb['conf_format_dateshort'] = 'Y-m-d';
+$wb['conf_format_dateshort'] = 'd-m-Y';
 $wb['conf_format_datelong'] = 'l dS of F Y';
 $wb['conf_format_timeshort'] = 'H:i';
 $wb['conf_format_timelong'] = 'H:i:s';
-$wb['conf_format_datetime'] = 'Y-m-d H:i';
+$wb['conf_format_datetime'] = 'd-m-Y H:i';
 $wb['number_format_decimals'] = '2';
-$wb['number_format_dec_point'] = '.';
-$wb['number_format_thousands_sep'] = '';
-$wb['error_301'] = 'Modulo non permesso per l`utente corrente.';
-$wb['error_302'] = 'Modulo non valido.';
-$wb['error_1001'] = 'Nome utente e password non possono essere vuoti!';
-$wb['error_1002'] = 'Il nome utente e/o la password non sono corretti!';
-$wb['error_1003'] = 'Questo utento non è attivo!';
+$wb['number_format_dec_point'] = ',';
+$wb['number_format_thousands_sep'] = '.';
 $wb['delete_confirmation'] = 'Sei sicuro di voler cancellare questo record?';
-$wb['error_no_view_permission'] = 'Non hai il permesso di visualizzare questo record o non esiste!';
-$wb['error_no_delete_permission'] = 'Non hai il permesso per cancellare questo record!';
+$wb['error_no_view_permission'] = 'Non hai il permesso di visualizzare questo record o non esiste.';
+$wb['error_no_delete_permission'] = 'Non hai il permesso per cancellare questo record.';
 $wb['page_txt'] = 'Pagina';
 $wb['page_of_txt'] = 'di';
 $wb['page_next_txt'] = 'Successiva';
@@ -23,21 +18,26 @@ $wb['delete_txt'] = 'Cancella';
 $wb['filter_txt'] = 'Filtro';
 $wb['add_new_record_txt'] = 'Aggiungi nuovo record';
 $wb['btn_save_txt'] = 'Salva';
-$wb['btn_cancel_txt'] = 'Indietro';
-$wb['toolsarea_head_txt'] = 'Tools';
-$wb['page_and_txt'] = 'and';
-$wb['top_menu_system'] = 'System';
-$wb['top_menu_client'] = 'Client';
+$wb['btn_cancel_txt'] = 'Annulla';
+$wb['toolsarea_head_txt'] = 'Strumenti';
+$wb['page_and_txt'] = 'e';
+$wb['top_menu_system'] = 'Sistema';
+$wb['top_menu_client'] = 'Clienti';
 $wb['top_menu_email'] = 'Email';
 $wb['top_menu_monitor'] = 'Monitor';
-$wb['top_menu_sites'] = 'Sites';
+$wb['top_menu_sites'] = 'Siti';
 $wb['top_menu_dns'] = 'DNS';
-$wb['top_menu_tools'] = 'Tools';
-$wb['top_menu_help'] = 'Help';
-$wb['top_menu_billing'] = 'Billing';
-$wb['top_menu_domain'] = 'Domains';
+$wb['top_menu_tools'] = 'Strumenti';
+$wb['top_menu_help'] = 'Aiuto';
+$wb['top_menu_billing'] = 'Fatture';
+$wb['top_menu_domain'] = 'Domini';
 $wb['top_menu_dashboard'] = 'Home';
-$wb['latest_news_txt'] = 'Latest news';
+$wb['latest_news_txt'] = 'Ultime notizie';
+$wb['error_301'] = 'Module not permitted for the current user.';
+$wb['error_302'] = 'Module invalid.';
+$wb['error_1001'] = 'The username and password cannot be empty !';
+$wb['error_1002'] = 'The username and/or password are not correct !';
+$wb['error_1003'] = 'The username is deactivated!';
 $wb['top_menu_vm'] = 'VServer';
 $wb['daynamesmin_su'] = 'Su';
 $wb['daynamesmin_mo'] = 'Mo';
diff --git a/interface/web/admin/form/server.tform.php b/interface/web/admin/form/server.tform.php
index bd556b27bb..20947c8a06 100644
--- a/interface/web/admin/form/server.tform.php
+++ b/interface/web/admin/form/server.tform.php
@@ -102,18 +102,6 @@ $form["tabs"]['services'] = array (
 			'default'	=> '0',
 			'value'		=> array(0 => 0,1 => 1)
 		),
-		'proxy_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> array(0 => 0,1 => 1)
-		),
-		'firewall_server' => array (
-			'datatype'	=> 'INTEGER',
-			'formtype'	=> 'CHECKBOX',
-			'default'	=> '0',
-			'value'		=> array(0 => 0,1 => 1)
-		),
 		'mirror_server_id' => array (
 			'datatype'	=> 'INTEGER',
 			'formtype'	=> 'TEXT',
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 1c46831716..f9ec365db0 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1053,7 +1053,7 @@ $form["tabs"]['rescue'] = array(
 			'default' => 'n',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
-		'do_not_try_rescue_apache' => array(
+		'do_not_try_rescue_httpd' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
 			'default' => 'n',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index 2588921d7e..44f4f74f4e 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 629d48d5be..1d570d4c98 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index ca63e458c2..64f7056ef7 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index a805edbc51..2518aba18b 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 55552b05b4..71bc79fb14 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -143,10 +143,10 @@ $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM Socket-Verzeichnis';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM Socket-Verzeichnis ist leer.';
 $wb['fastcgi_config_syntax_txt'] = 'FastCGI config syntax';
 $wb['backup_dir_ftpread_txt'] = 'Backup dir. readable for website FTP users.';
-$wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
-$wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
-$wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
-$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
+$wb['try_rescue_txt'] = 'Aktiviere Service Monitoring und Neustart bei Unerreichbarkeit';
+$wb['do_not_try_rescue_httpd_txt'] = 'Deaktiviere HTTPD Monitoring';
+$wb['do_not_try_rescue_mysql_txt'] = 'Deaktiviere MySQL Monitoring';
+$wb['do_not_try_rescue_mail_txt'] = 'Deaktiviere Email Monitoring';
+$wb['rescue_description_txt'] = '<b>Information:</b> Falls Sie MySQL stoppen m&ouml;chten, w&auml;hlen Sie die &quot;Deaktiviere MySQL Monitoring&quot; Checkbox und warten Sie 2-3 Minuten.<br>Falls Sie nicht 2-3 Minuten warten, wird Rescue versuchen, MySQL neu zu starten!';
 $wb['enable_sni_txt'] = 'Enable SNI';
 ?>
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 88399a345f..8a9096c32a 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 956abdd818..b3e9f60a0d 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -144,10 +144,10 @@ $wb["php_fpm_start_port_error_empty"] = 'PHP-FPM start port is empty.';
 $wb["php_fpm_socket_dir_txt"] = 'PHP-FPM socket directory';
 $wb["php_fpm_socket_dir_error_empty"] = 'PHP-FPM socket directory is empty.';
 $wb["try_rescue_txt"] = 'Enable service monitoring and restart on failure';
-$wb["do_not_try_rescue_apache_txt"] = 'Disable apache monitoring';
+$wb["do_not_try_rescue_httpd_txt"] = 'Disable HTTPD monitoring';
 $wb["do_not_try_rescue_mysql_txt"] = 'Disable MySQL monitoring';
 $wb["do_not_try_rescue_mail_txt"] = 'Disable Email monitoring';
-$wb["rescue_description_txt"] = '<b>Information:</b> If you want to shut down mysql you have to select the "Disable MySQL monitor" checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
+$wb["rescue_description_txt"] = '<b>Information:</b> If you want to shut down mysql you have to select the "Disable MySQL monitor" checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb["enable_sni_txt"] = 'Enable SNI';
 $wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List';
 $wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index aca475c021..38e83cf43b 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 74abf1b242..d04966ba27 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 926a632bcd..f6437c1dd6 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/hr.lng b/interface/web/admin/lib/lang/hr.lng
index ca775c5b01..0f6e4717f6 100644
--- a/interface/web/admin/lib/lang/hr.lng
+++ b/interface/web/admin/lib/lang/hr.lng
@@ -1,43 +1,43 @@
 <?php
-$wb['1001'] = 'Username or password is empty.';
-$wb['1002'] = 'Username or password is wrong.';
+$wb['1001'] = 'Nije upisano korisničko ime ili šifra.';
+$wb['1002'] = 'Pogrešno korisničko ime ili šifra.';
 $wb['Firewall'] = 'Firewall';
-$wb['Groups'] = 'Groups';
-$wb['groups_description'] = 'Form to edit systemuser groups.';
+$wb['Groups'] = 'Grupe';
+$wb['groups_description'] = 'Forma za editiranje grupe korisnika sistema.';
 $wb['Server'] = 'Server';
-$wb['Services'] = 'Services';
-$wb['Config'] = 'Config';
-$wb['Server Config'] = 'Server Config';
+$wb['Services'] = 'Servisi';
+$wb['Config'] = 'Konfiguracija';
+$wb['Server Config'] = 'Konfiguracija servera';
 $wb['Mail'] = 'Mail';
 $wb['Getmail'] = 'Getmail';
 $wb['Web'] = 'Web';
 $wb['FastCGI'] = 'FastCGI';
 $wb['Jailkit'] = 'Jailkit';
-$wb['System'] = 'System';
-$wb['Add user'] = 'Add user';
-$wb['Edit user'] = 'Edit user';
-$wb['CP Users'] = 'CP Users';
-$wb['Add group'] = 'Add group';
-$wb['Edit group'] = 'Edit group';
-$wb['Edit server'] = 'Edit server';
-$wb['Edit Server IP'] = 'Server IP addresses';
-$wb['Servers'] = 'Servers';
-$wb['Sync. Now'] = 'Sync. Now';
-$wb['DB Sync.'] = 'DB Sync.';
-$wb['Languages'] = 'Languages';
-$wb['New Language'] = 'New Language';
-$wb['Export'] = 'Export';
-$wb['Import'] = 'Import';
-$wb['Language Editor'] = 'Language Editor';
-$wb['Software'] = 'Apps & Addons';
-$wb['Repositories'] = 'Repositories';
-$wb['Server Services'] = 'Server Services';
-$wb['Interface Config'] = 'Interface Config';
-$wb['Packages'] = 'Packages';
-$wb['Updates'] = 'Updates';
-$wb['Merge'] = 'Merge';
-$wb['Remote Users'] = 'Remote Users';
-$wb['Remote Actions'] = 'Remote Actions';
-$wb['Do OS-Update'] = 'Do OS-Update';
-$wb['Do ISPConfig-Update'] = 'Do ISPConfig-Update';
+$wb['System'] = 'Sistem';
+$wb['Add user'] = 'Dodaj korisnika';
+$wb['Edit user'] = 'Editiraj korisnika';
+$wb['CP Users'] = 'CP korisnici';
+$wb['Add group'] = 'Dodaj grupu';
+$wb['Edit group'] = 'Editiraj grupu';
+$wb['Edit server'] = 'Editiraj server';
+$wb['Edit Server IP'] = 'IP adresa servera';
+$wb['Servers'] = 'Serveri';
+$wb['Sync. Now'] = 'Sinkroniziraj';
+$wb['DB Sync.'] = 'Sinkroniziraj bazu';
+$wb['Languages'] = 'Jezici';
+$wb['New Language'] = 'Novi jezik';
+$wb['Export'] = 'Eksportiraj';
+$wb['Import'] = 'Importiraj';
+$wb['Language Editor'] = 'Jezični editor';
+$wb['Software'] = 'Aplikacije i dodaci';
+$wb['Repositories'] = 'Repositoriji';
+$wb['Server Services'] = 'Serverski servisi';
+$wb['Interface Config'] = 'Konfiguracija sistema';
+$wb['Packages'] = 'Paketi';
+$wb['Updates'] = 'Nadogradnje';
+$wb['Merge'] = 'Spoji';
+$wb['Remote Users'] = 'Udaljeni korisnici';
+$wb['Remote Actions'] = 'Udaljene akcije';
+$wb['Do OS-Update'] = 'Nadogradnja sistema';
+$wb['Do ISPConfig-Update'] = 'Nadogradnja control panela';
 ?>
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index ce5c505de0..3110f4f488 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 0f701237ff..6a1c67e351 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 30482632f3..cab99a14fa 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/it.lng b/interface/web/admin/lib/lang/it.lng
index b9000c05ca..884dd8afa1 100644
--- a/interface/web/admin/lib/lang/it.lng
+++ b/interface/web/admin/lib/lang/it.lng
@@ -1,4 +1,6 @@
 <?php
+$wb['1001'] = 'Username or password is empty.';
+$wb['1002'] = 'Username or password is wrong.';
 $wb['Firewall'] = 'Firewall';
 $wb['Groups'] = 'Gruppi';
 $wb['groups_description'] = 'Form to edit systemuser groups.';
@@ -28,16 +30,14 @@ $wb['Export'] = 'Esporta';
 $wb['Import'] = 'Importa';
 $wb['Language Editor'] = 'Editor lingua';
 $wb['Software'] = 'Programmi';
-$wb['Repositories'] = 'Repositories';
-$wb['Server Services'] = 'Server Services';
-$wb['Interface Config'] = 'Interface Config';
-$wb['Packages'] = 'Packages';
-$wb['Updates'] = 'Updates';
+$wb['Repositories'] = 'Repository';
+$wb['Server Services'] = 'Servizi server';
+$wb['Interface Config'] = 'Configurazione interfaccia';
+$wb['Packages'] = 'Pacchetti';
+$wb['Updates'] = 'Aggiornamenti';
 $wb['Merge'] = 'Merge';
-$wb['Remote Users'] = 'Remote Users';
-$wb['Remote Actions'] = 'Remote Actions';
-$wb['Do OS-Update'] = 'Do OS-Update';
-$wb['Do ISPConfig-Update'] = 'Do ISPConfig-Update';
-$wb['1001'] = 'Username or password is empty.';
-$wb['1002'] = 'Username or password is wrong.';
+$wb['Remote Users'] = 'Utenti remoti';
+$wb['Remote Actions'] = 'Azioni remote';
+$wb['Do OS-Update'] = 'Aggiorna OS';
+$wb['Do ISPConfig-Update'] = 'Aggiorna ISPconfig';
 ?>
diff --git a/interface/web/admin/lib/lang/it_firewall.lng b/interface/web/admin/lib/lang/it_firewall.lng
index c58341df89..6a7ae5e3c2 100644
--- a/interface/web/admin/lib/lang/it_firewall.lng
+++ b/interface/web/admin/lib/lang/it_firewall.lng
@@ -5,7 +5,7 @@ $wb['udp_port_txt'] = 'Apri porte UDP';
 $wb['tcp_port_help_txt'] = 'Separate dalla virgola';
 $wb['udp_port_help_txt'] = 'Separate dalle virgola';
 $wb['active_txt'] = 'Attivo';
-$wb['firewall_error_unique'] = 'Cè già un record firewall per questo server.';
+$wb['firewall_error_unique'] = 'Cé già  un record firewall per questo server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/it_firewall_list.lng b/interface/web/admin/lib/lang/it_firewall_list.lng
index 24a34be1c1..b812994c63 100644
--- a/interface/web/admin/lib/lang/it_firewall_list.lng
+++ b/interface/web/admin/lib/lang/it_firewall_list.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['list_head_txt'] = 'Firewall';
-$wb['active_txt'] = 'Active';
+$wb['active_txt'] = 'Attivo';
 $wb['server_id_txt'] = 'Server';
-$wb['tcp_port_txt'] = 'Open TCP ports';
-$wb['udp_port_txt'] = 'Open UDP ports';
-$wb['add_new_record_txt'] = 'Add Firewall record';
+$wb['tcp_port_txt'] = 'Porte TCP aperte';
+$wb['udp_port_txt'] = 'Porte UDP aperte';
+$wb['add_new_record_txt'] = 'Aggiungi regola firewall';
 ?>
diff --git a/interface/web/admin/lib/lang/it_groups_list.lng b/interface/web/admin/lib/lang/it_groups_list.lng
index f1d8e2c1a3..c4650da01f 100644
--- a/interface/web/admin/lib/lang/it_groups_list.lng
+++ b/interface/web/admin/lib/lang/it_groups_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Systemuser groups';
-$wb['description_txt'] = 'Description';
-$wb['name_txt'] = 'Group';
-$wb['add_new_record_txt'] = 'Add new Group';
-$wb['warning_txt'] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
+$wb['list_head_txt'] = 'Gruppi utenti sistema';
+$wb['description_txt'] = 'Descrizione';
+$wb['name_txt'] = 'Gruppo';
+$wb['add_new_record_txt'] = 'Aggiungi nuovo gruppo';
+$wb['warning_txt'] = '<b>ATTENZIONE:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
 ?>
diff --git a/interface/web/admin/lib/lang/it_language_complete.lng b/interface/web/admin/lib/lang/it_language_complete.lng
index b5200ff9df..84e629e100 100644
--- a/interface/web/admin/lib/lang/it_language_complete.lng
+++ b/interface/web/admin/lib/lang/it_language_complete.lng
@@ -2,6 +2,6 @@
 $wb['list_head_txt'] = 'Merge the selected language file with the english master language file. <br />This adds missing strings from the english master language files to the selected language.';
 $wb['language_select_txt'] = 'Select language';
 $wb['btn_save_txt'] = 'Merge files now';
-$wb['btn_cancel_txt'] = 'Back';
+$wb['btn_cancel_txt'] = 'Annulla';
 $wb['list_desc_txt'] = 'Merge the selected language file with the english master language file. <br />This adds missing strings from the english master language files to the selected language.';
 ?>
diff --git a/interface/web/admin/lib/lang/it_language_edit.lng b/interface/web/admin/lib/lang/it_language_edit.lng
index 4c50e883e6..242642432c 100644
--- a/interface/web/admin/lib/lang/it_language_edit.lng
+++ b/interface/web/admin/lib/lang/it_language_edit.lng
@@ -3,6 +3,6 @@ $wb['list_head_txt'] = 'Language file editor';
 $wb['language_select_txt'] = 'Select language';
 $wb['module_txt'] = 'Module';
 $wb['lang_file_txt'] = 'Language file';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Back';
+$wb['btn_save_txt'] = 'Salva';
+$wb['btn_cancel_txt'] = 'Annulla';
 ?>
diff --git a/interface/web/admin/lib/lang/it_language_export.lng b/interface/web/admin/lib/lang/it_language_export.lng
index f45d47b17c..bce6b70bf2 100644
--- a/interface/web/admin/lib/lang/it_language_export.lng
+++ b/interface/web/admin/lib/lang/it_language_export.lng
@@ -2,5 +2,5 @@
 $wb['list_head_txt'] = 'Export language files';
 $wb['language_select_txt'] = 'Select language';
 $wb['btn_save_txt'] = 'Export the selected language file set';
-$wb['btn_cancel_txt'] = 'Back';
+$wb['btn_cancel_txt'] = 'Annulla';
 ?>
diff --git a/interface/web/admin/lib/lang/it_language_import.lng b/interface/web/admin/lib/lang/it_language_import.lng
index 4c31ec3de3..9762557238 100644
--- a/interface/web/admin/lib/lang/it_language_import.lng
+++ b/interface/web/admin/lib/lang/it_language_import.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Import language file';
-$wb['language_import_txt'] = 'Select language file';
-$wb['btn_save_txt'] = 'Import the selected language file';
-$wb['language_overwrite_txt'] = 'Overwrite file, if exists.';
-$wb['btn_cancel_txt'] = 'Back';
-$wb['ignore_version_txt'] = 'Skip ISPConfig version check';
+$wb['list_head_txt'] = 'Importa file di lingua';
+$wb['language_import_txt'] = 'Seleziona file di lingua';
+$wb['btn_save_txt'] = 'Importa il file di lingua selezionato';
+$wb['language_overwrite_txt'] = 'Sovrascrivi file, se esiste';
+$wb['btn_cancel_txt'] = 'Annulla';
+$wb['ignore_version_txt'] = 'Tralascia controllo versione ISPconfig';
 ?>
diff --git a/interface/web/admin/lib/lang/it_package_install.lng b/interface/web/admin/lib/lang/it_package_install.lng
index 574dd11629..6218f79590 100644
--- a/interface/web/admin/lib/lang/it_package_install.lng
+++ b/interface/web/admin/lib/lang/it_package_install.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['repo_name_txt'] = 'Repository';
 $wb['repo_url_txt'] = 'URL';
-$wb['repo_username_txt'] = 'User (optional)';
-$wb['repo_password_txt'] = 'Password (optional)';
-$wb['active_txt'] = 'Active';
+$wb['repo_username_txt'] = 'Utente (facoltativo)';
+$wb['repo_password_txt'] = 'Password (facoltativo)';
+$wb['active_txt'] = 'Attivo';
 ?>
diff --git a/interface/web/admin/lib/lang/it_remote_user_list.lng b/interface/web/admin/lib/lang/it_remote_user_list.lng
index 152a75fba4..4d7c70c3c6 100644
--- a/interface/web/admin/lib/lang/it_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/it_remote_user_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Remote Users';
+$wb['list_head_txt'] = 'Utenti remoti';
 $wb['list_desc_txt'] = '';
-$wb['add_new_record_txt'] = 'Add new user';
+$wb['add_new_record_txt'] = 'Aggiungi nuovo utente';
 $wb['parent_remote_userid_txt'] = 'ID';
-$wb['username_txt'] = 'Username';
+$wb['username_txt'] = 'Nome utente';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server.lng b/interface/web/admin/lib/lang/it_server.lng
index abf8de2956..18966e4a43 100644
--- a/interface/web/admin/lib/lang/it_server.lng
+++ b/interface/web/admin/lib/lang/it_server.lng
@@ -1,15 +1,15 @@
 <?php
 $wb['config_txt'] = 'config';
-$wb['server_name_txt'] = 'Nome Server';
-$wb['mail_server_txt'] = 'Mailserver';
-$wb['web_server_txt'] = 'Webserver';
-$wb['dns_server_txt'] = 'DNS-Server';
-$wb['file_server_txt'] = 'Fileserver';
-$wb['db_server_txt'] = 'DB-Server';
-$wb['vserver_server_txt'] = 'VServer-Server';
+$wb['server_name_txt'] = 'Name Server';
+$wb['mail_server_txt'] = 'Mail server';
+$wb['web_server_txt'] = 'Web server';
+$wb['dns_server_txt'] = 'DNS server';
+$wb['file_server_txt'] = 'File server';
+$wb['db_server_txt'] = 'DB server';
+$wb['vserver_server_txt'] = 'VServer server';
 $wb['active_txt'] = 'Attivo';
-$wb['mirror_server_id_txt'] = 'Is mirror of Server';
-$wb['- None -'] = '- None -';
+$wb['mirror_server_id_txt'] = 'Mirror del server';
+$wb['- None -'] = '- Nessuno -';
 $wb['proxy_server_txt'] = 'Proxy-Server';
 $wb['firewall_server_txt'] = 'Firewall-Server';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 6904e797d0..b9ba257a88 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -4,7 +4,6 @@ $wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections';
 $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications';
 $wb['website_path_txt'] = 'Website path';
 $wb['website_symlinks_txt'] = 'Website symlinks';
-$wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['vhost_conf_dir_txt'] = 'Vhost config dir';
 $wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
 $wb['getmail_config_dir_txt'] = 'Getmail config dir';
@@ -70,11 +69,11 @@ $wb['awstats_conf_dir_txt'] = 'awstats conf folder';
 $wb['awstats_data_dir_txt'] = 'awstats data folder';
 $wb['awstats_pl_txt'] = 'awstats.pl script';
 $wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl script';
-$wb['backup_dir_txt'] = 'Backup directory';
+$wb['backup_dir_txt'] = 'Directory di backup';
 $wb['named_conf_local_path_txt'] = 'BIND named.conf.local path';
-$wb['php_ini_path_cgi_txt'] = 'CGI php.ini path';
-$wb['php_ini_path_apache_txt'] = 'Apache php.ini path';
-$wb['check_apache_config_txt'] = 'Test apache configuration on restart';
+$wb['php_ini_path_cgi_txt'] = 'Percorso php.ini CGI';
+$wb['php_ini_path_apache_txt'] = 'Percorso php.ini apache';
+$wb['check_apache_config_txt'] = 'Testa al riavvio la configurazione di apache';
 $wb['ufw_enable_txt'] = 'Enable';
 $wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules';
 $wb['ufw_ipv6_txt'] = 'Enable IPv6';
@@ -83,6 +82,7 @@ $wb['ufw_default_output_policy_txt'] = 'Default Output Policy';
 $wb['ufw_default_forward_policy_txt'] = 'Default Forward Policy';
 $wb['ufw_default_application_policy_txt'] = 'Default Application Policy';
 $wb['ufw_log_level_txt'] = 'Log Level';
+$wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
 $wb['network_config_warning_txt'] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.';
 $wb['CA_path_txt'] = 'CA Path';
 $wb['CA_pass_txt'] = 'CA passphrase';
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
-$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
+$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_ip.lng b/interface/web/admin/lib/lang/it_server_ip.lng
index 88d8a2f604..86758810bd 100644
--- a/interface/web/admin/lib/lang/it_server_ip.lng
+++ b/interface/web/admin/lib/lang/it_server_ip.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['server_id_txt'] = 'Server';
-$wb['ip_address_txt'] = 'IP Address';
+$wb['ip_address_txt'] = 'Indirizzo IP';
 $wb['virtualhost_txt'] = 'HTTP NameVirtualHost';
-$wb['ip_error_wrong'] = 'The IP address is invalid';
-$wb['ip_error_unique'] = 'The IP address must be unique';
+$wb['ip_error_wrong'] = 'Indirizzo IP non valido';
+$wb['ip_error_unique'] = 'Lindirizzo IP devessere unico';
 $wb['client_id_txt'] = 'Client';
 $wb['ip_type_txt'] = 'Type';
 $wb['virtualhost_port_txt'] = 'HTTP Ports';
diff --git a/interface/web/admin/lib/lang/it_software_repo.lng b/interface/web/admin/lib/lang/it_software_repo.lng
index 574dd11629..28ac8754b5 100644
--- a/interface/web/admin/lib/lang/it_software_repo.lng
+++ b/interface/web/admin/lib/lang/it_software_repo.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['repo_name_txt'] = 'Repository';
 $wb['repo_url_txt'] = 'URL';
-$wb['repo_username_txt'] = 'User (optional)';
-$wb['repo_password_txt'] = 'Password (optional)';
-$wb['active_txt'] = 'Active';
+$wb['repo_username_txt'] = 'Utente (facoltativo)';
+$wb['repo_password_txt'] = 'Password (facoltativa)';
+$wb['active_txt'] = 'Attivo';
 ?>
diff --git a/interface/web/admin/lib/lang/it_software_update_list.lng b/interface/web/admin/lib/lang/it_software_update_list.lng
index d45ee9ac47..0a1819661c 100644
--- a/interface/web/admin/lib/lang/it_software_update_list.lng
+++ b/interface/web/admin/lib/lang/it_software_update_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Aggiornamenti programmi';
+$wb['list_head_txt'] = 'Aggiornamento programmi';
 $wb['installed_txt'] = 'Azione';
 $wb['update_title_txt'] = 'Aggiornamento';
 $wb['version_txt'] = 'Versione';
 $wb['action_txt'] = 'Azione';
-$wb['server_select_txt'] = 'Select server';
+$wb['server_select_txt'] = 'Selezionare server';
 ?>
diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng
index dd5b9f3dc8..b263405cb6 100644
--- a/interface/web/admin/lib/lang/it_system_config.lng
+++ b/interface/web/admin/lib/lang/it_system_config.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.';
-$wb['dbname_prefix_txt'] = 'Database name prefix';
-$wb['dbuser_prefix_txt'] = 'Database user prefix';
-$wb['shelluser_prefix_txt'] = 'Shell user prefix';
-$wb['ftpuser_prefix_txt'] = 'FTP user prefix';
+$wb['dbname_prefix_txt'] = 'Prefisso nome database';
+$wb['dbuser_prefix_txt'] = 'Prefisso utente database';
+$wb['shelluser_prefix_txt'] = 'Prefisso utente Shell';
+$wb['ftpuser_prefix_txt'] = 'Prefisso utente FTP';
 $wb['dbname_prefix_error_regex'] = 'Char not allowed in database name prefix.';
 $wb['dbuser_prefix_error_regex'] = 'Char not allowed in database user prefix.';
 $wb['ftpuser_prefix_error_regex'] = 'Char not allowed in ftp user prefix.';
@@ -15,16 +15,16 @@ $wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL';
 $wb['use_domain_module_txt'] = 'Use the domain-module to add new domains';
 $wb['use_domain_module_hint'] = 'If you use this module, your customers can only select one of the domains the admin creates for them. They can not free edit the domain-field.You have to re-login after changing this value, to make the changes visible.';
 $wb['new_domain_txt'] = 'HTML to create a new domain';
-$wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
-$wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)';
-$wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)';
 $wb['webdavuser_prefix_txt'] = 'Webdav user prefix';
 $wb['webdavuser_prefix_error_regex'] = 'Char not allowed in webdav user prefix.';
 $wb['webftp_url_txt'] = 'WebFTP URL';
+$wb['monitor_key_txt'] = 'Monitor keyword';
+$wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
+$wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)';
+$wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)';
 $wb['enable_custom_login_txt'] = 'Allow custom login name';
 $wb['mailmailinglist_link_txt'] = 'Link to mailing list in Mailing list list';
 $wb['mailmailinglist_url_txt'] = 'Mailing list URL';
 $wb['admin_mail_txt'] = 'Administrators e-mail';
-$wb['monitor_key_txt'] = 'Monitor keyword';
 $wb['admin_name_txt'] = 'Administrators name';
 ?>
diff --git a/interface/web/admin/lib/lang/it_users.lng b/interface/web/admin/lib/lang/it_users.lng
index 8e70364aa7..ed49fa9b81 100644
--- a/interface/web/admin/lib/lang/it_users.lng
+++ b/interface/web/admin/lib/lang/it_users.lng
@@ -1,28 +1,28 @@
 <?php
-$wb['username_txt'] = 'Username';
-$wb['username_err'] = 'The username is too long or contains invalid characters.';
-$wb['username_empty'] = 'The username is empty.';
-$wb['username_unique'] = 'There is already a user with this username.';
+$wb['username_txt'] = 'Nome utente';
+$wb['username_err'] = 'Nome utente troppo lungo o avente caratteri non validi.';
+$wb['username_empty'] = 'Nome utente mancante.';
+$wb['username_unique'] = 'Nome utente già utilizzato.';
 $wb['passwort_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['modules_txt'] = 'Module';
+$wb['password_strength_txt'] = 'Solidità password';
+$wb['modules_txt'] = 'Modulo';
 $wb['startmodule_txt'] = 'Startmodule';
 $wb['app_theme_txt'] = 'Design';
-$wb['typ_txt'] = 'Type';
-$wb['active_txt'] = 'Active';
-$wb['language_txt'] = 'Language';
-$wb['name_txt'] = 'Name';
-$wb['vorname_txt'] = 'Forename';
-$wb['unternehmen_txt'] = 'Company';
-$wb['strasse_txt'] = 'Street';
-$wb['ort_txt'] = 'City';
-$wb['plz_txt'] = 'ZIP';
-$wb['land_txt'] = 'Country';
+$wb['typ_txt'] = 'Tipo';
+$wb['active_txt'] = 'Attiva';
+$wb['language_txt'] = 'Lingua';
+$wb['name_txt'] = 'Nome';
+$wb['vorname_txt'] = 'Cognome';
+$wb['unternehmen_txt'] = 'Azienda';
+$wb['strasse_txt'] = 'Via';
+$wb['ort_txt'] = 'Città';
+$wb['plz_txt'] = 'CAP';
+$wb['land_txt'] = 'Stato';
 $wb['email_txt'] = 'Email';
 $wb['url_txt'] = 'Url';
-$wb['telefon_txt'] = 'Telephone';
+$wb['telefon_txt'] = 'Telefono';
 $wb['fax_txt'] = 'Fax';
-$wb['groups_txt'] = 'Groups';
-$wb['default_group_txt'] = 'Default Group';
+$wb['groups_txt'] = 'Gruppi';
+$wb['default_group_txt'] = 'Gruppo predefinito';
 $wb['startmodule_err'] = 'Start module is not within modules.';
 ?>
diff --git a/interface/web/admin/lib/lang/it_users_list.lng b/interface/web/admin/lib/lang/it_users_list.lng
index 35598d33ff..fdee4eb06f 100644
--- a/interface/web/admin/lib/lang/it_users_list.lng
+++ b/interface/web/admin/lib/lang/it_users_list.lng
@@ -5,5 +5,5 @@ $wb['name_txt'] = 'Nome';
 $wb['vorname_txt'] = 'Cognome';
 $wb['ort_txt'] = 'Città';
 $wb['add_new_record_txt'] = 'Add new user';
-$wb['warning_txt'] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
+$wb['warning_txt'] = '<b>ATTENZIONE:</b> non editare o modificare alcuna impostazione utente in questa schermata. Usare piuttosto le impostazioni Cliente/Rivenditore del modulo Clienti. Modificare Utenti o gruppi in questa schermata può provocare la perdita di dati.';
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 98cb5d1ff8..778009ec67 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 51ea4235ea..ac60ba57d8 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 6a84e037c2..28d888bfbb 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 850a99eb46..642d0c9213 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 440df7c035..dd7a521ac7 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 125de99291..87e40efbd5 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 629d48d5be..1d570d4c98 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index ebb685927d..69308b9861 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index f4d29a7215..fd0f14717d 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -144,9 +144,9 @@ $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
 $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
 $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
 $wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_apache_txt'] = 'Disable apache monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
 $wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 ?>
diff --git a/interface/web/admin/templates/language_export.htm b/interface/web/admin/templates/language_export.htm
index d03b389e2a..12dd237567 100644
--- a/interface/web/admin/templates/language_export.htm
+++ b/interface/web/admin/templates/language_export.htm
@@ -7,7 +7,7 @@
     <fieldset class="inlineLabels"><legend>Language Export</legend>
       <div class="ctrlHolder">
       	<label for="lng_select">{tmpl_var name='language_select_txt'}</label>
-        <select name="language" id="lng_select" class="selectInput withicons">
+        <select name="lng_select" id="lng_select" class="selectInput withicons">
 					{tmpl_var name='language_option'}
 				</select>
       </div>
diff --git a/interface/web/admin/templates/server_config_rescue_edit.htm b/interface/web/admin/templates/server_config_rescue_edit.htm
index 3aa9bf6224..99cbf79617 100644
--- a/interface/web/admin/templates/server_config_rescue_edit.htm
+++ b/interface/web/admin/templates/server_config_rescue_edit.htm
@@ -12,9 +12,9 @@
 					</div>
 			</div>
       <div class="ctrlHolder">
-				<p class="label" style="width:300px">{tmpl_var name='do_not_try_rescue_apache_txt'}</p>
+				<p class="label" style="width:300px">{tmpl_var name='do_not_try_rescue_httpd_txt'}</p>
 					<div class="multiField" style="width:100px">
-						{tmpl_var name='do_not_try_rescue_apache'}
+						{tmpl_var name='do_not_try_rescue_httpd'}
 					</div>
 			</div>
       <div class="ctrlHolder">
diff --git a/interface/web/admin/templates/server_edit_services.htm b/interface/web/admin/templates/server_edit_services.htm
index 17ff55d5e7..8eca2909c9 100644
--- a/interface/web/admin/templates/server_edit_services.htm
+++ b/interface/web/admin/templates/server_edit_services.htm
@@ -45,18 +45,6 @@
 						{tmpl_var name='vserver_server'}
 					</div>
 			</div>
-	  <div class="ctrlHolder">
-                <p class="label">{tmpl_var name='proxy_server_txt'}</p>
-                    <div class="multiField">
-                        {tmpl_var name='proxy_server'}
-                    </div>
-      </div>
-      <div class="ctrlHolder">
-                <p class="label">{tmpl_var name='firewall_server_txt'}</p>
-                    <div class="multiField">
-                        {tmpl_var name='firewall_server'}
-                    </div>
-      </div>
 	  <div class="ctrlHolder">
 		<label for="mirror_server_id">{tmpl_var name='mirror_server_id_txt'}</label>
         <select name="mirror_server_id" id="server_id" class="selectInput">
diff --git a/interface/web/admin/templates/server_list.htm b/interface/web/admin/templates/server_list.htm
index 7a2951173b..2bb0691ba3 100644
--- a/interface/web/admin/templates/server_list.htm
+++ b/interface/web/admin/templates/server_list.htm
@@ -15,8 +15,6 @@
             <th class="tbl_col_file_server" scope="col"><tmpl_var name="file_server_txt"></th>
             <th class="tbl_col_db_server" scope="col"><tmpl_var name="db_server_txt"></th>
             <th class="tbl_col_vserver_server" scope="col"><tmpl_var name="vserver_server_txt"></th>
-			<th class="tbl_col_proxy_server" scope="col"><tmpl_var name="proxy_server_txt"></th>
-            <th class="tbl_col_firewall_server" scope="col"><tmpl_var name="firewall_server_txt"></th>
             <th class="tbl_col_buttons" scope="col">&nbsp;</th>
           </tr>
           <tr>
@@ -27,8 +25,6 @@
             <td class="tbl_col_file_server"><select name="search_active">{tmpl_var name='search_file_server'}</select></td>
             <td class="tbl_col_db_server"><select name="search_active">{tmpl_var name='search_db_server'}</select></td>
             <td class="tbl_col_vserver_server"><select name="search_active">{tmpl_var name='search_vserver_server'}</select></td>
-            <td class="tbl_col_proxy_server"><select name="search_active">{tmpl_var name='search_proxy_server'}</select></td>
-            <td class="tbl_col_firewallserver"><select name="search_active">{tmpl_var name='search_firewall_server'}</select></td>
 			<td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td>
           </tr>
         </thead>
@@ -42,8 +38,6 @@
             <td class="tbl_col_file_server">{tmpl_var name="file_server"}</td>
             <td class="tbl_col_db_server">{tmpl_var name="db_server"}</td>
             <td class="tbl_col_vserver_server">{tmpl_var name="vserver_server"}</td>
-			<td class="tbl_col_proxy_server">{tmpl_var name="proxy_server"}</td>
-            <td class="tbl_col_firewall_server">{tmpl_var name="firewall_server"}</td>
             <td class="tbl_col_buttons">
               <div class="buttons icons16">    
                 <a class="icons16 icoDelete" href="javascript: del_record('admin/server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
@@ -54,7 +48,7 @@
         </tbody>
         <tfoot>
           <tr>
-            <td class="tbl_footer tbl_paging" colspan="10"><tmpl_var name="paging"></td>
+            <td class="tbl_footer tbl_paging" colspan="8"><tmpl_var name="paging"></td>
           </tr>
         </tfoot>
       </table>
diff --git a/interface/web/client/client_del.php b/interface/web/client/client_del.php
index 29abe6f418..fd560e7a1e 100644
--- a/interface/web/client/client_del.php
+++ b/interface/web/client/client_del.php
@@ -131,7 +131,7 @@ class page_action extends tform_actions {
 			$app->db->query("DELETE FROM sys_user WHERE client_id = $client_id");
 			
 			// Delete all records (sub-clients, mail, web, etc....)  of this client.
-			$tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic,web_folder,web_folder_user';
+			$tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic,web_folder,web_folder_user,domain';
 			$tables_array = explode(',',$tables);
 			$client_group_id = intval($client_group['groupid']);
 			if($client_group_id > 1) {
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index 36d3da2375..cc7a28c8f9 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -41,8 +41,8 @@ $wb["limit_domain_txt"] = 'limit_domain';
 $wb["limit_subdomain_txt"] = 'limit_subdomain';
 $wb["limit_webquota_txt"] = 'limit_webquota';
 $wb["limit_database_txt"] = 'limit_database';
-$wb["limit_cron_txt"] = 'Allowed cron job types';
-$wb["limit_cron_type_txt"] = 'Max. type of cron jobs (chrooted and full implies url)';
+$wb["limit_cron_txt"] = 'Max. number of cron jobs';
+$wb["limit_cron_type_txt"] = 'Max. Allowed Cronjob types (chrooted and full implies url)';
 $wb["limit_cron_frequency_txt"] = 'Min. delay between executions';
 $wb["ip_address_txt"] = 'ip_address';
 $wb["limit_client_error_notint"] = 'Client Limit is not a number.';
diff --git a/interface/web/client/lib/lang/it.lng b/interface/web/client/lib/lang/it.lng
index 17552563eb..4d6a7a3191 100644
--- a/interface/web/client/lib/lang/it.lng
+++ b/interface/web/client/lib/lang/it.lng
@@ -6,8 +6,8 @@ $wb['Add Client'] = 'Aggiungi cliente';
 $wb['Edit Client'] = 'Modifica cliente';
 $wb['Clients'] = 'Clienti';
 $wb['Edit Client-Templates'] = 'Modifica modelli cliente';
-$wb['Add Reseller'] = 'Add Reseller';
-$wb['Edit Reseller'] = 'Edit Reseller';
-$wb['Resellers'] = 'Resellers';
-$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
+$wb['Add Reseller'] = 'Aggiungi rivenditore';
+$wb['Edit Reseller'] = 'Modifica rivenditore';
+$wb['Resellers'] = 'Rivenditori';
+$wb['error_has_clients'] = 'Questo rivenditore ha dei clienti, bisogna cancellarli prima di procedere.';
 ?>
diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng
index f8eca40985..6120bef76d 100644
--- a/interface/web/client/lib/lang/it_client.lng
+++ b/interface/web/client/lib/lang/it_client.lng
@@ -12,14 +12,14 @@ $wb['limit_spamfilter_wblist_txt'] = 'Numero massimo di spamfilter white / black
 $wb['limit_spamfilter_user_txt'] = 'Numero massimo di spamfilter users';
 $wb['limit_spamfilter_policy_txt'] = 'Numero massimo di spamfilter policys';
 $wb['default_mailserver_txt'] = 'Mailserver predefinito';
-$wb['company_name_txt'] = 'Nome compagnia';
+$wb['company_name_txt'] = 'Nome Azienda';
 $wb['contact_name_txt'] = 'Nome contatto';
 $wb['username_txt'] = 'Nome utente';
 $wb['password_txt'] = 'Password';
 $wb['language_txt'] = 'Lingua';
 $wb['usertheme_txt'] = 'Tema';
 $wb['street_txt'] = 'Via';
-$wb['zip_txt'] = 'C.a.p.';
+$wb['zip_txt'] = 'CAP';
 $wb['city_txt'] = 'Città';
 $wb['state_txt'] = 'Provincia';
 $wb['country_txt'] = 'Stato';
@@ -30,7 +30,7 @@ $wb['email_txt'] = 'Email';
 $wb['internet_txt'] = 'Internet';
 $wb['icq_txt'] = 'ICQ';
 $wb['notes_txt'] = 'Note';
-$wb['company_txt'] = 'Compagnia';
+$wb['company_txt'] = 'Azienda';
 $wb['title_txt'] = 'Titolo';
 $wb['firstname_txt'] = 'Nome';
 $wb['surname_txt'] = 'Cognome';
@@ -42,21 +42,21 @@ $wb['limit_database_txt'] = 'Numero massimo database';
 $wb['ip_address_txt'] = 'Indirizzi ip';
 $wb['limit_client_error_notint'] = 'The sub client limit must be a number.';
 $wb['firstname_error_empty'] = 'Nome è vuoto.';
-$wb['contact_error_empty'] = 'Nome compagnia è vuoto.';
+$wb['contact_error_empty'] = 'Nome azienda è vuoto.';
 $wb['default_webserver_txt'] = 'Webserver predefinito';
 $wb['limit_web_domain_txt'] = 'Numero massimo di domini';
-$wb['limit_web_aliasdomain_txt'] = 'Numero massimo di dominialias';
+$wb['limit_web_aliasdomain_txt'] = 'Numero massimo di alia domini';
 $wb['limit_web_subdomain_txt'] = 'Numero massimo di sottodomini';
 $wb['limit_ftp_user_txt'] = 'Numero massimo di utenti FTP';
 $wb['default_dnsserver_txt'] = 'DNS Server predefinito';
 $wb['limit_dns_zone_txt'] = 'Numero massimo di zone DNS';
-$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones';
+$wb['limit_dns_slave_zone_txt'] = 'Numero massimo di zone DNS secondarie';
 $wb['limit_dns_record_txt'] = 'Numero massimo di record DNS';
 $wb['limit_shell_user_txt'] = 'Numero massimo di utenti Shell';
 $wb['username_error_empty'] = 'Nome utente è vuoto.';
 $wb['username_error_unique'] = 'Il nome utente deve essere unico.';
-$wb['limit_maildomain_error_notint'] = 'The email domain limit must be a number.';
-$wb['limit_mailbox_error_notint'] = 'The mailbox limit must be a number.';
+$wb['limit_maildomain_error_notint'] = 'Il limite dei domini email devessere un numero.';
+$wb['limit_mailbox_error_notint'] = 'Il limite delle caselle di posta devessere un numero.';
 $wb['limit_mailalias_error_notint'] = 'The email alias limit must be a number.';
 $wb['limit_mailforward_error_notint'] = 'The email forward limit must be a number.';
 $wb['limit_mailcatchall_error_notint'] = 'The email catchall limit must be a number.';
@@ -96,7 +96,7 @@ $wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.';
 $wb['limit_webdav_user_txt'] = 'Max. number of Webdav users';
 $wb['limit_webdav_user_error_notint'] = 'The webdav user limit must be a number.';
 $wb['customer_no_txt'] = 'Customer No.';
-$wb['vat_id_txt'] = 'VAT ID';
+$wb['vat_id_txt'] = 'P. IVA';
 $wb['required_fields_txt'] = '* Required fields';
 $wb['limit_mailmailinglist_txt'] = 'Max. number of mailing lists';
 $wb['limit_mailmailinglist_error_notint'] = 'The mailing list record limit must be a number.';
diff --git a/interface/web/client/lib/lang/it_client_del.lng b/interface/web/client/lib/lang/it_client_del.lng
index a826d64e14..df74987ab2 100644
--- a/interface/web/client/lib/lang/it_client_del.lng
+++ b/interface/web/client/lib/lang/it_client_del.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['confirm_action_txt'] = 'Confirm action';
-$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
-$wb['btn_save_txt'] = 'Delete the client';
-$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
+$wb['confirm_action_txt'] = 'Conferma operazione';
+$wb['delete_explanation'] = 'Questa operazione cancellerà i seguenti record associati a questo cliente';
+$wb['btn_save_txt'] = 'Cancella cliente';
+$wb['btn_cancel_txt'] = 'Annulla senza cancellare il cliente';
 ?>
diff --git a/interface/web/client/lib/lang/it_client_template.lng b/interface/web/client/lib/lang/it_client_template.lng
index 5a6d3d85b0..082e23e2c0 100644
--- a/interface/web/client/lib/lang/it_client_template.lng
+++ b/interface/web/client/lib/lang/it_client_template.lng
@@ -1,65 +1,67 @@
 <?php
-$wb['limit_client_error_notint'] = 'The sub client limit must be a number.';
-$wb['limit_maildomain_txt'] = 'Max. number of email domains';
-$wb['limit_mailbox_txt'] = 'Max. number of mailboxes';
-$wb['limit_mailalias_txt'] = 'Max. number of email aliases';
-$wb['limit_mailforward_txt'] = 'Max. number of email forwarders';
-$wb['limit_mailcatchall_txt'] = 'Max. number of email catchall accounts';
-$wb['limit_mailrouting_txt'] = 'Max. number of email routes';
-$wb['limit_mailfilter_txt'] = 'Max. number of email filters';
-$wb['limit_fetchmail_txt'] = 'Max. number of fetchmail accounts';
-$wb['limit_mailquota_txt'] = 'Mailbox quota';
-$wb['limit_spamfilter_wblist_txt'] = 'Max. number of spamfilter white / blacklist filters';
-$wb['limit_spamfilter_user_txt'] = 'Max. number of spamfilter users';
-$wb['limit_spamfilter_policy_txt'] = 'Max. number of spamfilter policys';
-$wb['limit_client_txt'] = 'Max. number of Clients';
+$wb['limit_client_error_notint'] = 'Il limite dei sub-clienti devessere un numero.';
+$wb['limit_maildomain_txt'] = 'Num. massimo domini email';
+$wb['limit_mailbox_txt'] = 'Num. massimo caselle di posta';
+$wb['limit_mailalias_txt'] = 'Num. massimo alias email';
+$wb['limit_mailforward_txt'] = 'Num. massimo inoltri email';
+$wb['limit_mailcatchall_txt'] = 'Num. massimo account email catchall';
+$wb['limit_mailrouting_txt'] = 'Num. massimo routes email';
+$wb['limit_mailfilter_txt'] = 'Num. massimo filtri email';
+$wb['limit_fetchmail_txt'] = 'Num. massimo account fetchmail';
+$wb['limit_mailquota_txt'] = 'Quota caselle di posta';
+$wb['limit_spamfilter_wblist_txt'] = 'Num. massimo filtri spam white / blacklist';
+$wb['limit_spamfilter_user_txt'] = 'Num. massimo utenti spamfilter';
+$wb['limit_spamfilter_policy_txt'] = 'Num. massimo policys spamfilter';
+$wb['limit_client_txt'] = 'Num. massimo clienti';
 $wb['limit_domain_txt'] = 'limit_domain';
 $wb['limit_subdomain_txt'] = 'limit_subdomain';
 $wb['limit_webquota_txt'] = 'limit_webquota';
-$wb['limit_database_txt'] = 'Max. number of Databases';
-$wb['limit_web_domain_txt'] = 'Max. number of web domains';
-$wb['limit_web_aliasdomain_txt'] = 'Max. number of web aliasdomains';
-$wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains';
-$wb['limit_ftp_user_txt'] = 'Max. number of FTP users';
-$wb['limit_dns_zone_txt'] = 'Max. number of DNS zones';
-$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones';
-$wb['limit_dns_record_txt'] = 'Max. number DNS records';
-$wb['limit_shell_user_txt'] = 'Max. number of Shell users';
-$wb['limit_maildomain_error_notint'] = 'The email domain limit must be a number.';
-$wb['limit_mailbox_error_notint'] = 'The mailbox limit must be a number.';
-$wb['limit_mailalias_error_notint'] = 'The email alias limit must be a number.';
-$wb['limit_mailforward_error_notint'] = 'The email forward limit must be a number.';
-$wb['limit_mailcatchall_error_notint'] = 'The email catchall limit must be a number.';
-$wb['limit_mailrouting_error_notint'] = 'The email routing limit must be a number.';
-$wb['limit_mailfilter_error_notint'] = 'The email filter limit must be a number.';
-$wb['limit_mailfetchmail_error_notint'] = 'The fetchmail limit must be a number.';
-$wb['limit_mailquota_error_notint'] = 'The email quota limit must be a number.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'The spamfilter white / blacklist limit must be a number.';
-$wb['limit_spamfilter_user_error_notint'] = 'The spamfilter user limit must be a number.';
-$wb['limit_spamfilter_policy_error_notint'] = 'The spamfilter policy limit must be a number.';
-$wb['limit_web_domain_error_notint'] = 'The website limit must be a number.';
-$wb['limit_web_aliasdomain_error_notint'] = 'The website alias domain limit must be a number.';
-$wb['limit_web_subdomain_error_notint'] = 'The website subdomain limit must be a number.';
-$wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.';
-$wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.';
-$wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.';
-$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.';
-$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.';
-$wb['limit_database_error_notint'] = 'The database limit must be a number.';
+$wb['limit_database_txt'] = 'Num. massimo database';
+$wb['limit_web_domain_txt'] = 'Num. massimo domini web';
+$wb['limit_web_aliasdomain_txt'] = 'Num. massimo alias domini web';
+$wb['limit_web_subdomain_txt'] = 'Num. massimo sottodomini';
+$wb['limit_ftp_user_txt'] = 'Num. massimo utenti FTP';
+$wb['limit_dns_zone_txt'] = 'Num. massimo zone DNS';
+$wb['limit_dns_slave_zone_txt'] = 'Num. massimo zone DNS secondarie';
+$wb['limit_dns_record_txt'] = 'Num. massimo record DNS';
+$wb['limit_shell_user_txt'] = 'Num. massimo utenti shell';
+$wb['limit_maildomain_error_notint'] = 'Il limite domini email devessere un numero.';
+$wb['limit_mailbox_error_notint'] = 'Il limite caselle di posta devessere un numero.';
+$wb['limit_mailalias_error_notint'] = 'Il limite alias email devessere un numero.';
+$wb['limit_mailforward_error_notint'] = 'Il limite inoltro email devessere un numero.';
+$wb['limit_mailcatchall_error_notint'] = 'Il limite catchall email devessere un numero.';
+$wb['limit_mailrouting_error_notint'] = 'Il limite routing email devessere un numero .';
+$wb['limit_mailfilter_error_notint'] = 'Il limite filtri email devessere un numero.';
+$wb['limit_mailfetchmail_error_notint'] = 'Il limite fetchmail devessere un numero.';
+$wb['limit_mailquota_error_notint'] = 'Il limite quota email devessere un numero.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Il limite filtri spamfilter devessere un numero.';
+$wb['limit_spamfilter_user_error_notint'] = 'Il limite utenti spamfilter devessere un numero.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Il limite policy spamfilter devessere un numero.';
+$wb['limit_web_domain_error_notint'] = 'Il limite siti web devessere un numero.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Il limite alias siti web devessere un numero.';
+$wb['limit_web_subdomain_error_notint'] = 'Il limite sottodomini web devessere un numero.';
+$wb['limit_ftp_user_error_notint'] = 'Il limite utenti FTP devessere un numero.';
+$wb['limit_shell_user_error_notint'] = 'Il limite utenti shell devessere un numero.';
+$wb['limit_dns_zone_error_notint'] = 'Il limite record DNS devessere un numero.';
+$wb['limit_dns_slave_zone_error_notint'] = 'Il limite zone slave DNS devessere un numero.';
+$wb['limit_dns_record_error_notint'] = 'Il limite record DNS devessere un numero.';
+$wb['limit_database_error_notint'] = 'Il limite database devessere un numero.';
 $wb['error_template_name_empty'] = 'Devi inserire il nome del modello';
-$wb['limit_cron_txt'] = 'Max. number of cron jobs';
-$wb['limit_cron_type_txt'] = 'Max. type of cron jobs (chrooted and full implies url)';
-$wb['limit_cron_frequency_txt'] = 'Min. delay between executions';
-$wb['limit_cron_error_notint'] = 'The cron limit must be a number.';
-$wb['limit_cron_error_frequency'] = 'The cron frequency limit must be a number.';
-$wb['limit_mailaliasdomain_txt'] = 'Max. number of domain aliases';
-$wb['limit_mailaliasdomain_error_notint'] = 'The email domain alias limit must be a number.';
-$wb['limit_web_quota_txt'] = 'Web Quota';
-$wb['limit_traffic_quota_txt'] = 'Traffic Quota';
-$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.';
-$wb['template_del_aborted_txt'] = 'Delete aborted. There is still a client which has this template selected.';
-$wb['limit_webdav_user_txt'] = 'Max. number of Webdav users';
-$wb['limit_webdav_user_error_notint'] = 'The webdav user limit must be a number.';
+$wb['limit_cron_txt'] = 'Num. massimo cron jobs';
+$wb['limit_cron_type_txt'] = 'Num. massimo tipi cron jobs (chroot e pieni implicano URL)';
+$wb['limit_cron_frequency_txt'] = 'Min. ritardo tra le esecuzioni';
+$wb['limit_cron_error_notint'] = 'Il limite cron devessere un numero.';
+$wb['limit_cron_error_frequency'] = 'Il limite frequenza cron devessere un numero.';
+$wb['limit_mailaliasdomain_txt'] = 'Num. massimo alis domini';
+$wb['limit_mailaliasdomain_error_notint'] = 'Il limite alias domini devessere un numero.';
+$wb['limit_web_quota_txt'] = 'Quota web';
+$wb['limit_traffic_quota_txt'] = 'Quota traffico';
+$wb['limit_trafficquota_error_notint'] = 'Quota traffico devessere un numero.';
+$wb['template_del_aborted_txt'] = 'Eliminazione annullata. Esiste almeno un cliente che ha questo template attivo.';
+$wb['limit_webdav_user_txt'] = 'Num. massimo utenti webdav';
+$wb['limit_webdav_user_error_notint'] = 'Il limite utenti webdav devessere un numero.';
+$wb['template_type_txt'] = 'Template type';
+$wb['template_name_txt'] = 'Template name';
 $wb['limit_mailmailinglist_txt'] = 'Max. number of mailing lists';
 $wb['limit_mailmailinglist_error_notint'] = 'The mailing list record limit must be a number.';
 $wb['limit_openvz_vm_txt'] = 'Max. number of virtual servers';
@@ -67,6 +69,4 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Force virtual server template';
 $wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
 $wb['ssh_chroot_txt'] = 'SSH-Chroot Options';
 $wb['web_php_options_txt'] = 'PHP Options';
-$wb['template_type_txt'] = 'Template type';
-$wb['template_name_txt'] = 'Template name';
 ?>
diff --git a/interface/web/client/lib/lang/it_clients_list.lng b/interface/web/client/lib/lang/it_clients_list.lng
index caadee56b5..9cf1a558e4 100644
--- a/interface/web/client/lib/lang/it_clients_list.lng
+++ b/interface/web/client/lib/lang/it_clients_list.lng
@@ -1,10 +1,10 @@
 <?php
 $wb['list_head_txt'] = 'Clienti';
 $wb['client_id_txt'] = 'ID';
-$wb['company_name_txt'] = 'Nome compagnia';
+$wb['company_name_txt'] = 'Nome azienda';
 $wb['contact_name_txt'] = 'Nome contatto';
 $wb['city_txt'] = 'Città';
 $wb['country_txt'] = 'Stato';
-$wb['add_new_record_txt'] = 'Add new client';
+$wb['add_new_record_txt'] = 'Aggiungi nuovo cliente';
 $wb['username_txt'] = 'Username';
 ?>
diff --git a/interface/web/client/lib/lang/it_resellers_list.lng b/interface/web/client/lib/lang/it_resellers_list.lng
index 34d0896699..368a012631 100644
--- a/interface/web/client/lib/lang/it_resellers_list.lng
+++ b/interface/web/client/lib/lang/it_resellers_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Resellers';
+$wb['list_head_txt'] = 'Rivenditori';
 $wb['client_id_txt'] = 'ID';
-$wb['company_name_txt'] = 'Company name';
-$wb['contact_name_txt'] = 'Contact name';
-$wb['city_txt'] = 'City';
-$wb['country_txt'] = 'Country';
-$wb['add_new_record_txt'] = 'Add new reseller';
+$wb['company_name_txt'] = 'Azienda';
+$wb['contact_name_txt'] = 'Contatto';
+$wb['city_txt'] = 'Città';
+$wb['country_txt'] = 'Nazione';
+$wb['add_new_record_txt'] = 'Aggiungi nuovo rivenditore';
 ?>
diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng
index 7de907f723..65e0d4497e 100644
--- a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng
@@ -5,7 +5,7 @@ $wb['unlimited_txt'] = 'neograničeno';
 $wb['limit_maildomain_txt'] = 'Mail domene';
 $wb['limit_mailbox_txt'] = 'Mailboxi';
 $wb['limit_mailalias_txt'] = 'Mail aliasi';
-$wb['limit_mailaliasdomain_txt'] = 'Domain aliasi';
+$wb['limit_mailaliasdomain_txt'] = 'Aliasi domene';
 $wb['limit_mailforward_txt'] = 'Mail forwarderi';
 $wb['limit_mailcatchall_txt'] = 'Mail catchall računi';
 $wb['limit_mailrouting_txt'] = 'Mail route';
@@ -26,5 +26,5 @@ $wb['limit_shell_user_txt'] = 'Shell računi';
 $wb['limit_webdav_user_txt'] = 'Webdav računi';
 $wb['limit_client_txt'] = 'Klijenti';
 $wb['limit_database_txt'] = 'Baze';
-$wb['limit_mailmailinglist_txt'] = 'Number of mailing lists';
+$wb['limit_mailmailinglist_txt'] = 'Mail liste';
 ?>
diff --git a/interface/web/dashboard/lib/lang/it.lng b/interface/web/dashboard/lib/lang/it.lng
index 246054599f..db8858aafd 100644
--- a/interface/web/dashboard/lib/lang/it.lng
+++ b/interface/web/dashboard/lib/lang/it.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['welcome_user_txt'] = 'Welcome %s';
-$wb['available_modules_txt'] = 'Available Modules';
+$wb['welcome_user_txt'] = 'Buongiorno %s';
+$wb['available_modules_txt'] = 'Moduli disponibili';
 ?>
diff --git a/interface/web/dashboard/lib/lang/it_dashlet_limits.lng b/interface/web/dashboard/lib/lang/it_dashlet_limits.lng
index fea2bd678d..a89a62b9fb 100644
--- a/interface/web/dashboard/lib/lang/it_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/it_dashlet_limits.lng
@@ -1,30 +1,30 @@
 <?php
-$wb['limits_txt'] = 'Account limits';
-$wb['of_txt'] = 'of';
-$wb['unlimited_txt'] = 'Unlimited';
-$wb['limit_maildomain_txt'] = 'Number of email domains';
-$wb['limit_mailbox_txt'] = 'Number of mailboxes';
-$wb['limit_mailalias_txt'] = 'Number of email aliases';
-$wb['limit_mailaliasdomain_txt'] = 'Number of domain aliases';
-$wb['limit_mailforward_txt'] = 'Number of email forwarders';
-$wb['limit_mailcatchall_txt'] = 'Number of email catchall accounts';
-$wb['limit_mailrouting_txt'] = 'Number of email routes';
-$wb['limit_mailfilter_txt'] = 'Number of email filters';
-$wb['limit_fetchmail_txt'] = 'Number of fetchmail accounts';
-$wb['limit_spamfilter_wblist_txt'] = 'Number of spamfilter white / blacklist filters';
-$wb['limit_spamfilter_user_txt'] = 'Number of spamfilter users';
-$wb['limit_spamfilter_policy_txt'] = 'Number of spamfilter policys';
-$wb['limit_cron_txt'] = 'Number of cron jobs';
-$wb['limit_web_domain_txt'] = 'Number of web domains';
-$wb['limit_web_aliasdomain_txt'] = 'Number of web aliasdomains';
-$wb['limit_web_subdomain_txt'] = 'Number of web subdomains';
-$wb['limit_ftp_user_txt'] = 'Number of FTP users';
-$wb['limit_dns_zone_txt'] = 'Number of DNS zones';
-$wb['limit_dns_slave_zone_txt'] = 'Number of DNS slave zones';
-$wb['limit_dns_record_txt'] = 'Number DNS records';
-$wb['limit_shell_user_txt'] = 'Number of Shell users';
-$wb['limit_webdav_user_txt'] = 'Number of Webdav users';
-$wb['limit_client_txt'] = 'Number of Clients';
-$wb['limit_database_txt'] = 'Number of Databases';
+$wb['limits_txt'] = 'Sintesi account';
+$wb['of_txt'] = 'su';
+$wb['unlimited_txt'] = 'illimitati';
+$wb['limit_maildomain_txt'] = 'Domini email';
+$wb['limit_mailbox_txt'] = 'Caselle email';
+$wb['limit_mailalias_txt'] = 'Alias di email';
+$wb['limit_mailaliasdomain_txt'] = 'Alias di domini';
+$wb['limit_mailforward_txt'] = 'Inoltro email';
+$wb['limit_mailcatchall_txt'] = 'Account catchall email';
+$wb['limit_mailrouting_txt'] = 'Instradamento email';
+$wb['limit_mailfilter_txt'] = 'Filtri email';
+$wb['limit_fetchmail_txt'] = 'Account fetchmail';
+$wb['limit_spamfilter_wblist_txt'] = 'Filtri spamfilter white / blacklist';
+$wb['limit_spamfilter_user_txt'] = 'Utenti spamfilter';
+$wb['limit_spamfilter_policy_txt'] = 'Policy spamfilter';
+$wb['limit_cron_txt'] = 'Cron jobs';
+$wb['limit_web_domain_txt'] = 'Domini web';
+$wb['limit_web_aliasdomain_txt'] = 'Alias domini web';
+$wb['limit_web_subdomain_txt'] = 'Sottodomini web';
+$wb['limit_ftp_user_txt'] = 'Utenti FTP';
+$wb['limit_dns_zone_txt'] = 'Zone DNS';
+$wb['limit_dns_slave_zone_txt'] = 'Zone DNS slave';
+$wb['limit_dns_record_txt'] = 'Record DNS';
+$wb['limit_shell_user_txt'] = 'Utenti Shell';
+$wb['limit_webdav_user_txt'] = 'Utenti Webdav';
+$wb['limit_client_txt'] = 'Client';
+$wb['limit_database_txt'] = 'Database';
 $wb['limit_mailmailinglist_txt'] = 'Number of mailing lists';
 ?>
diff --git a/interface/web/dashboard/lib/lang/it_dashlet_modules.lng b/interface/web/dashboard/lib/lang/it_dashlet_modules.lng
index 6a02127a06..d9e5cd8c22 100644
--- a/interface/web/dashboard/lib/lang/it_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/it_dashlet_modules.lng
@@ -1,3 +1,3 @@
 <?php
-$wb['available_modules_txt'] = 'Available Modules';
+$wb['available_modules_txt'] = 'Moduli disponibili';
 ?>
diff --git a/interface/web/designer/lib/lang/it_form_edit.lng b/interface/web/designer/lib/lang/it_form_edit.lng
index 54fe173eca..1fc63b8845 100644
--- a/interface/web/designer/lib/lang/it_form_edit.lng
+++ b/interface/web/designer/lib/lang/it_form_edit.lng
@@ -15,7 +15,7 @@ $wb['db_table_idx_txt'] = 'DB Table Index';
 $wb['db_history_txt'] = 'Undo Log';
 $wb['tab_default_txt'] = 'Default Tab';
 $wb['list_default_txt'] = 'Default Liste';
-$wb['auth_txt'] = 'Permissions';
+$wb['auth_txt'] = 'Permessi';
 $wb['auth_preset_userid_txt'] = 'UserID';
 $wb['auth_preset_groupid_txt'] = 'GroupID';
 $wb['auth_preset_perm_user_txt'] = 'Perm. User';
diff --git a/interface/web/designer/lib/lang/it_form_list.lng b/interface/web/designer/lib/lang/it_form_list.lng
index 47432257fd..015cc53ffa 100644
--- a/interface/web/designer/lib/lang/it_form_list.lng
+++ b/interface/web/designer/lib/lang/it_form_list.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['list_head_txt'] = 'Backend Form';
 $wb['form_txt'] = 'Form';
-$wb['module_txt'] = 'Module';
-$wb['title_txt'] = 'Title';
-$wb['description_txt'] = 'Description';
+$wb['module_txt'] = 'Modulo';
+$wb['title_txt'] = 'Titolo';
+$wb['description_txt'] = 'Descrizione';
 ?>
diff --git a/interface/web/designer/lib/lang/it_module_edit.lng b/interface/web/designer/lib/lang/it_module_edit.lng
index 592ccd76bc..a759d40b68 100644
--- a/interface/web/designer/lib/lang/it_module_edit.lng
+++ b/interface/web/designer/lib/lang/it_module_edit.lng
@@ -11,12 +11,12 @@ $wb['header_txt'] = 'Module properties';
 $wb['description_txt'] = '
 <b>Description</b>
 <br><br>
-<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br>
+<b>Modulename:</b> Nome del modulo directory. Sono ammessi solo numeri, caratteri e underscore.<br>
 <b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br>
 <b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br>
 <b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br>
 <b>Default page:</b> These page will be shown when the module is opened.<br>
 <b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br>
-<b>Hint:</b> All paths are relative to the directory web.
+<b>Suggerimento:</b> tutti i percorsi sono relativi alla directory web.
 ';
 ?>
diff --git a/interface/web/designer/lib/lang/it_module_list.lng b/interface/web/designer/lib/lang/it_module_list.lng
index bc9ebed580..8a256cb490 100644
--- a/interface/web/designer/lib/lang/it_module_list.lng
+++ b/interface/web/designer/lib/lang/it_module_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Backend Module';
-$wb['module_txt'] = 'Module';
-$wb['title_txt'] = 'Title';
+$wb['list_head_txt'] = 'Modulo backend';
+$wb['module_txt'] = 'Modulo';
+$wb['title_txt'] = 'Titolo';
 ?>
diff --git a/interface/web/designer/lib/lang/it_module_nav_edit.lng b/interface/web/designer/lib/lang/it_module_nav_edit.lng
index fa5f15aa9e..26a426a124 100644
--- a/interface/web/designer/lib/lang/it_module_nav_edit.lng
+++ b/interface/web/designer/lib/lang/it_module_nav_edit.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['title_txt'] = 'Title';
-$wb['header_txt'] = 'Navi properties';
-$wb['save_txt'] = 'Save';
-$wb['cancel_txt'] = 'Cancel';
+$wb['title_txt'] = 'Titolo';
+$wb['header_txt'] = 'Proprietà Navi';
+$wb['save_txt'] = 'Salva';
+$wb['cancel_txt'] = 'Annulla';
 ?>
diff --git a/interface/web/designer/lib/lang/it_module_nav_item_edit.lng b/interface/web/designer/lib/lang/it_module_nav_item_edit.lng
index 23f7d1592a..47aac393bc 100644
--- a/interface/web/designer/lib/lang/it_module_nav_item_edit.lng
+++ b/interface/web/designer/lib/lang/it_module_nav_item_edit.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['title_txt'] = 'Title';
+$wb['title_txt'] = 'Titolo';
 $wb['target_txt'] = 'Target';
 $wb['link_txt'] = 'Link';
-$wb['header_txt'] = 'Navi properties';
-$wb['save_txt'] = 'Save';
-$wb['cancel_txt'] = 'Cancel';
+$wb['header_txt'] = 'Proprietà Navi';
+$wb['save_txt'] = 'Salva';
+$wb['cancel_txt'] = 'Annulla';
 ?>
diff --git a/interface/web/designer/lib/lang/it_module_show.lng b/interface/web/designer/lib/lang/it_module_show.lng
index e295047b0e..2cf9b07a80 100644
--- a/interface/web/designer/lib/lang/it_module_show.lng
+++ b/interface/web/designer/lib/lang/it_module_show.lng
@@ -10,7 +10,7 @@ $wb['new_txt'] = 'New';
 $wb['up_txt'] = 'Up';
 $wb['down_txt'] = 'Down';
 $wb['module_txt'] = 'Module';
-$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?';
-$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?';
-$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?';
+$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?';
+$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?';
+$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?';
 ?>
diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php
index 861c9c833a..8ad3275599 100644
--- a/interface/web/dns/dns_import.php
+++ b/interface/web/dns/dns_import.php
@@ -34,6 +34,8 @@ require_once('../../lib/app.inc.php');
 //* Check permissions for module
 $app->auth->check_module_permissions('dns');
 
+$msg = '';
+$error = '';
 
 // Loading the template
 $app->uses('tpl,validate_dns');
@@ -120,8 +122,9 @@ if ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSIO
 
 // Import the zone-file
 //if(1=="1")
-if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name']))
-{
+if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])){
+	$valid_zone_file = FALSE;
+	
 	$sql = "SELECT server_name FROM `server` WHERE server_id=".intval($server_id)." OR mirror_server_id=".intval($server_id)." ORDER BY server_name ASC";
 	$servers = $app->db->queryAllRecords($sql);
 	for ($i=0;$i<count($servers);$i++)
@@ -132,24 +135,225 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 		}
 	}
 	$lines = file($_FILES['file']['tmp_name']);
+	
+	// Remove empty lines, comments, whitespace, tabs, etc.
+	$new_lines = array();
+	foreach($lines as $line){
+		$line = trim($line);
+		if ($line != '' && substr($line,0,1) != ';'){
+			if(strpos($line,";") !== FALSE) $line = substr($line,0,strpos($line,";"));
+			if(strpos($line,"(") !== FALSE) $line = substr($line,0,strpos($line,"("));
+			if(strpos($line,")") !== FALSE) $line = substr($line,0,strpos($line,")"));
+			$line = trim($line);
+			if ($line != ''){
+				$sPattern = '/\s+/m';
+				$sReplace = ' ';
+				$new_lines[] = preg_replace($sPattern, $sReplace, $line);
+			}
+		}
+	}
+	unset($lines);
+	$lines = $new_lines;
+	unset($new_lines);
+	
 	//$lines = file("apriqot.se.txt");
 	$name = str_replace("txt","",$_FILES['file']['name']);
 	$name = str_replace("zone","",$name);
-	if ($domain !== NULL)
-	{
+
+	if ($domain !== NULL){
 		$name = $domain;
-		if (substr($name,strlen($name)-1) != ".")
-		{
-			$name .= ".";
+	}
+	
+	if (substr($name,-1) != "."){
+		$name .= ".";
+	}
+	
+	$i = 0;
+	$origin_exists = FALSE;
+	$soa_array_key = -1;
+	$soa = array();
+	$soa['name'] = $name;
+	$r = 0;
+	$dns_rr = array();
+	foreach($lines as $line){
+	
+		$parts = explode(' ', $line);
+		
+		// make all elements lowercase
+		$new_parts = array();
+		foreach($parts as $part){
+			$new_parts[] = strtolower($part);
+		}
+		unset($parts);
+		$parts = $new_parts;
+		unset($new_parts);
+		
+		// if ORIGIN exists, overwrite $soa['name']
+		if($parts[0] == '$origin'){
+			$soa['name'] = $parts[1];
+			$origin_exists = TRUE;
+		}
+		// TTL
+		if($parts[0] == '$ttl'){
+			$soa['ttl'] = intval($parts[1]);
+		}
+		// SOA
+		if(in_array("soa", $parts)){
+			$soa['mbox'] = array_pop($parts);
+			//$soa['ns'] = array_pop($parts);
+			$soa['ns'] = $servers[0]['server_name'];
+			// if domain is part of SOA, overwrite $soa['name']
+			if($parts[0] != '@' && $parts[0] != 'in' && $parts[0] != 'soa' && $origin_exists === FALSE){
+				$soa['name'] = $parts[0];
+			}
+			$soa_array_key = $i;
+			$valid_zone_file = TRUE;
+		}
+		// SERIAL
+		if($i == ($soa_array_key + 1)) $soa['serial'] = intval($parts[0]);
+		// REFRESH
+		if($i == ($soa_array_key + 2)) $soa['refresh'] = intval($parts[0]);
+		// RETRY
+		if($i == ($soa_array_key + 3)) $soa['retry'] = intval($parts[0]);
+		// EXPIRE
+		if($i == ($soa_array_key + 4)) $soa['expire'] = intval($parts[0]);
+		// MINIMUM
+		if($i == ($soa_array_key + 5)) $soa['minimum'] = intval($parts[0]);
+		// RESOURCE RECORDS
+		if($i > ($soa_array_key + 5)){
+			if(substr($parts[0],-1) == '.' || $parts[0] == '@' || ($parts[0] != 'a' && $parts[0] != 'aaaa' && $parts[0] != 'ns' && $parts[0] != 'cname' && $parts[0] != 'hinfo' && $parts[0] != 'mx' && $parts[0] != 'naptr' && $parts[0] != 'ptr' && $parts[0] != 'rp' && $parts[0] != 'srv' && $parts[0] != 'txt')){
+				if(is_numeric($parts[1])){
+					if($parts[2] == 'in'){
+						$resource_type = $parts[3];
+						$pkey = 3;
+					} else {
+						$resource_type = $parts[2];
+						$pkey = 2;
+					}
+				} else {
+					if($parts[1] == 'in'){
+						$resource_type = $parts[2];
+						$pkey = 2;
+					} else {
+						$resource_type = $parts[1];
+						$pkey = 1;
+					}
+				}
+				$dns_rr[$r]['type'] = $resource_type;
+				if($parts[0] == '@' || $parts[0] == '.'){
+					$dns_rr[$r]['name'] = $soa['name'];
+				} else {
+					$dns_rr[$r]['name'] = $parts[0];
+				}
+				if(is_numeric($parts[1])){
+					$dns_rr[$r]['ttl'] = intval($parts[1]);
+				} else {
+					$dns_rr[$r]['ttl'] = $soa['ttl'];
+				}
+				switch ($resource_type) {
+					case 'mx':
+					case 'srv':
+						$dns_rr[$r]['aux'] = intval($parts[$pkey+1]);
+						$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2));
+						break;
+					default:
+						$dns_rr[$r]['aux'] = 0;
+						$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1));
+				}
+			} else {
+				// a 3600 IN A 1.2.3.4
+				if(is_numeric($parts[1]) && $parts[2] == 'in' && ($parts[3] == 'a' || $parts[3] == 'aaaa' || $parts[3] == 'ns'|| $parts[3] == 'cname' || $parts[3] == 'hinfo' || $parts[3] == 'mx' || $parts[3] == 'naptr' || $parts[3] == 'ptr' || $parts[3] == 'rp' || $parts[3] == 'srv' || $parts[3] == 'txt')){
+					$resource_type = $parts[3];
+					$pkey = 3;
+					$dns_rr[$r]['type'] = $resource_type;
+					$dns_rr[$r]['name'] = $parts[0];
+					$dns_rr[$r]['ttl'] = intval($parts[1]);
+					switch ($resource_type) {
+						case 'mx':
+						case 'srv':
+							$dns_rr[$r]['aux'] = intval($parts[$pkey+1]);
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2));
+							break;
+						default:
+							$dns_rr[$r]['aux'] = 0;
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1));
+					}
+				} 
+				// a IN A 1.2.3.4
+				elseif($parts[1] == 'in' && ($parts[2] == 'a' || $parts[2] == 'aaaa' || $parts[2] == 'ns'|| $parts[2] == 'cname' || $parts[2] == 'hinfo' || $parts[2] == 'mx' || $parts[2] == 'naptr' || $parts[2] == 'ptr' || $parts[2] == 'rp' || $parts[2] == 'srv' || $parts[2] == 'txt')){
+					$resource_type = $parts[2];
+					$pkey = 2;
+					$dns_rr[$r]['type'] = $resource_type;
+					$dns_rr[$r]['name'] = $parts[0];
+					$dns_rr[$r]['ttl'] = $soa['ttl'];
+					switch ($resource_type) {
+						case 'mx':
+						case 'srv':
+							$dns_rr[$r]['aux'] = intval($parts[$pkey+1]);
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2));
+							break;
+						default:
+							$dns_rr[$r]['aux'] = 0;
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1));
+					}
+				} 
+				// a 3600 A 1.2.3.4
+				elseif(is_numeric($parts[1]) && ($parts[2] == 'a' || $parts[2] == 'aaaa' || $parts[2] == 'ns'|| $parts[2] == 'cname' || $parts[2] == 'hinfo' || $parts[2] == 'mx' || $parts[2] == 'naptr' || $parts[2] == 'ptr' || $parts[2] == 'rp' || $parts[2] == 'srv' || $parts[2] == 'txt')){
+					$resource_type = $parts[2];
+					$pkey = 2;
+					$dns_rr[$r]['type'] = $resource_type;
+					$dns_rr[$r]['name'] = $parts[0];
+					$dns_rr[$r]['ttl'] = intval($parts[1]);
+					switch ($resource_type) {
+						case 'mx':
+						case 'srv':
+							$dns_rr[$r]['aux'] = intval($parts[$pkey+1]);
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2));
+							break;
+						default:
+							$dns_rr[$r]['aux'] = 0;
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1));
+					}
+				} 
+				// A 1.2.3.4
+				// MX 10 mail
+				// TXT "v=spf1 a mx ptr -all"
+				else {
+					$resource_type = $parts[0];
+					$pkey = 0;
+					$dns_rr[$r]['type'] = $resource_type;
+					$dns_rr[$r]['name'] = $soa['name'];
+					$dns_rr[$r]['ttl'] = $soa['ttl'];
+					switch ($resource_type) {
+						case 'mx':
+						case 'srv':
+							$dns_rr[$r]['aux'] = intval($parts[$pkey+1]);
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+2));
+							break;
+						default:
+							$dns_rr[$r]['aux'] = 0;
+							$dns_rr[$r]['data'] = implode(' ',array_slice($parts, $pkey+1));
+					}
+				}
+			}
+			$dns_rr[$r]['type'] = strtoupper($dns_rr[$r]['type']);
+			if($dns_rr[$r]['type'] == 'NS' && $dns_rr[$r]['name'] == $soa['name']){
+				unset($dns_rr[$r]);
+			}
+			$r++;
 		}
+		$i++;
 	}
+	
+	/*
 	$i = 0;
 	$r = 0;
 	$s = 0;
 	$dns_rr = array();
 	foreach ($lines as $line)
 	{
-		if (substr($line,0,1)!=';'&&substr($line,0,1)!='$')
+		$line = trim($line);
+		if ($line != '' && substr($line,0,1) != ';' && substr($line,0,1) != '$')
 		{
 			$line = str_replace("\n",NULL,$line);
 			$i++;
@@ -174,22 +378,24 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 						else if ($s == 4)
 							$soa['expire'] = $line;
 						else if ($s == 5)
-							$soa['ttl'] = $line;
+							$soa['minimum'] = $line;
 
 					}
 				}
 				else
 				{
 					$line = str_replace("\t",",",$line);
+					$line = str_replace(" ",",",$line);
 					$recs = explode(",",$line);
 
 					foreach ($recs as $key => $rec)
 					{
 						$rec = trim($rec);
+						if($rec == '') continue;
 						//name	type	data	aux	ttl	active
 						if ($key == 0)
 						{
-							if ($rec == '@' || $rec == "")
+							if ($rec == '@')
 							{
 								$rec = $name;
 							}
@@ -203,7 +409,7 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 						}
 						else if ($key > $typekey[$r])
 						{
-							if ($rec != ""&&$rec != "(")
+							if ($rec != "" && $rec != "(")
 							{
 								$rec = explode(" ",$rec);
 
@@ -261,19 +467,20 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 
 		}
 	}
+	*/
 
-	foreach ($servers as $server)
-	{
-		$dns_rr[$r]['name']=$name;
-		$dns_rr[$r]['type']='NS';
+	foreach ($servers as $server){
+		$dns_rr[$r]['name'] = $soa['name'];
+		$dns_rr[$r]['type'] = 'NS';
 		$dns_rr[$r]['data'] = $server['server_name'];
 		$dns_rr[$r]['aux'] = 0;
-
 		$r++;
 	}
-					print('<pre>');
-					print_r($dns_rr);
-					print('</pre>');
+					//print('<pre>');
+					//print_r($dns_rr);
+					//print('</pre>');
+					
+					
 	// Insert the soa record
 	$sys_userid = $_SESSION['s']['user']['userid'];
 	$origin = $app->db->quote($soa['name']);
@@ -282,33 +489,40 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 	$refresh = $app->db->quote($soa['refresh']);
 	$retry = $app->db->quote($soa['retry']);
 	$expire = $app->db->quote($soa['expire']);
-	$minimum = $app->db->quote($soa['ttl']);
+	$minimum = $app->db->quote($soa['minimum']);
 	$ttl = $app->db->quote($soa['ttl']);
 	$xfer = $app->db->quote('');
 	$serial = $app->db->quote(intval($soa['serial'])+1);
+	//print_r($soa);
+	//die();
+	if($valid_zone_file){
+		$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `origin`, `ns`, `mbox`, `serial`, `refresh`, `retry`, `expire`, `minimum`, `ttl`, `active`, `xfer`) VALUES
+		('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$origin', '$ns', '$mbox', '$serial', '$refresh', '$retry', '$expire', '$minimum', '$ttl', 'Y', '$xfer')";
+		$dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id');
 	
-	$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `origin`, `ns`, `mbox`, `serial`, `refresh`, `retry`, `expire`, `minimum`, `ttl`, `active`, `xfer`) VALUES
-	('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$origin', '$ns', '$mbox', '$serial', '$refresh', '$retry', '$expire', '$minimum', '$ttl', 'Y', '$xfer')";
-	$dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id');
-	
-	// Insert the dns_rr records
-	if(is_array($dns_rr) && $dns_soa_id > 0)
-	{
-		foreach($dns_rr as $rr)
+		// Insert the dns_rr records
+		if(is_array($dns_rr) && $dns_soa_id > 0)
 		{
-			$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES
-			('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$rr[name]', '$rr[type]', '$rr[data]', '$rr[aux]', '$rr[ttl]', 'Y')";
-			$dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id');
+			foreach($dns_rr as $rr)
+			{
+				$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES
+				('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$rr[name]', '$rr[type]', '$rr[data]', '$rr[aux]', '$rr[ttl]', 'Y')";
+				$dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id');
+			}
 		}
+		$msg .= $app->lng('zone_file_successfully_imported_txt');
+	} else {
+		$error .= $app->lng('error_no_valid_zone_file_txt');
 	}
-	
-	header('Location: /dns/dns_soa_edit.php?id='.$dns_soa_id);
+	//header('Location: /dns/dns_soa_edit.php?id='.$dns_soa_id);
 }
 
+
 $app->tpl->setVar('msg',$msg);
 $app->tpl->setVar('error',$error);
 
 $app->tpl->setVar("title",'Import Zone Files');
+$app->tpl->setVar("zonefile_to_import_txt",$app->lng('zonefile_to_import_txt'));
 
 $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng';
 include($lng_file);
diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php
index c40eb96b6e..dc43a4b905 100644
--- a/interface/web/dns/dns_slave_edit.php
+++ b/interface/web/dns/dns_slave_edit.php
@@ -76,10 +76,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = '';
 			if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = ($client["groupid"] == @$tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
@@ -95,10 +95,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php
index e83602561e..7ec0278566 100644
--- a/interface/web/dns/dns_soa_edit.php
+++ b/interface/web/dns/dns_soa_edit.php
@@ -86,10 +86,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = '';
 			if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = ($client["groupid"] == @$tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
@@ -105,10 +105,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php
index 1abf9ce648..4490d5573e 100644
--- a/interface/web/dns/form/dns_soa.tform.php
+++ b/interface/web/dns/form/dns_soa.tform.php
@@ -127,7 +127,7 @@ $form["tabs"]['dns_soa'] = array (
 		'refresh' => array (
 			'datatype'	=> 'INTEGER',
 			'formtype'	=> 'TEXT',
-			'default'	=> '28800',
+			'default'	=> '7200',
 			'value'		=> '',
 			'width'		=> '10',
 			'maxlength'	=> '10'
@@ -135,7 +135,7 @@ $form["tabs"]['dns_soa'] = array (
 		'retry' => array (
 			'datatype'	=> 'INTEGER',
 			'formtype'	=> 'TEXT',
-			'default'	=> '7200',
+			'default'	=> '540',
 			'value'		=> '',
 			'width'		=> '10',
 			'maxlength'	=> '10'
@@ -159,7 +159,7 @@ $form["tabs"]['dns_soa'] = array (
 		'ttl' => array (
 			'datatype'	=> 'INTEGER',
 			'formtype'	=> 'TEXT',
-			'default'	=> '86400',
+			'default'	=> '3600',
 			'value'		=> '',
 			'width'		=> '10',
 			'maxlength'	=> '10'
diff --git a/interface/web/dns/lib/lang/ar.lng b/interface/web/dns/lib/lang/ar.lng
index 36def8e93d..c08339fe94 100644
--- a/interface/web/dns/lib/lang/ar.lng
+++ b/interface/web/dns/lib/lang/ar.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/bg.lng b/interface/web/dns/lib/lang/bg.lng
index 36def8e93d..c08339fe94 100644
--- a/interface/web/dns/lib/lang/bg.lng
+++ b/interface/web/dns/lib/lang/bg.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/br.lng b/interface/web/dns/lib/lang/br.lng
index de70fdb275..b7a7a7cc03 100644
--- a/interface/web/dns/lib/lang/br.lng
+++ b/interface/web/dns/lib/lang/br.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'TXT DNS';
 $wb['DNS Wizard'] = 'Assistente de DNS';
 $wb['Add DNS Zone'] = 'Adcionar Zona DNS';
 $wb['Templates'] = 'Gabaritos';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/cz.lng b/interface/web/dns/lib/lang/cz.lng
index c8fd57564b..432c8fede9 100644
--- a/interface/web/dns/lib/lang/cz.lng
+++ b/interface/web/dns/lib/lang/cz.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS průvodce';
 $wb['Add DNS Zone'] = 'Přidat DNS zónu';
 $wb['Templates'] = 'Å ablony';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/de.lng b/interface/web/dns/lib/lang/de.lng
index 90fb2d7391..7242257fc3 100644
--- a/interface/web/dns/lib/lang/de.lng
+++ b/interface/web/dns/lib/lang/de.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'DNS-Zone hinzufügen';
 $wb['Templates'] = 'Vorlagen';
+$wb['zone_file_successfully_imported_txt'] = 'Die Zone-Datei ist erfolgreich importiert worden!';
+$wb['error_no_valid_zone_file_txt'] = 'Es scheint, als ob dies keine g&uuml;ltige Zone-Datei ist!';
+$wb['zonefile_to_import_txt'] = 'Zone-Datei';
 ?>
diff --git a/interface/web/dns/lib/lang/el.lng b/interface/web/dns/lib/lang/el.lng
index 6a259a0c9d..071cac2950 100644
--- a/interface/web/dns/lib/lang/el.lng
+++ b/interface/web/dns/lib/lang/el.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'Οδηγός DNS';
 $wb['Add DNS Zone'] = 'Νέα ζώνη DNS';
 $wb['Templates'] = 'Πρότυπα';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/en.lng b/interface/web/dns/lib/lang/en.lng
index c4a5beaada..f2311c0294 100644
--- a/interface/web/dns/lib/lang/en.lng
+++ b/interface/web/dns/lib/lang/en.lng
@@ -18,5 +18,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
-
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
\ No newline at end of file
diff --git a/interface/web/dns/lib/lang/es.lng b/interface/web/dns/lib/lang/es.lng
index 1f11a4f38c..f71ae16a33 100644
--- a/interface/web/dns/lib/lang/es.lng
+++ b/interface/web/dns/lib/lang/es.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'Asistente DNS';
 $wb['Add DNS Zone'] = 'Agregar Zona DNS';
 $wb['Templates'] = 'Plantillas';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/fi.lng b/interface/web/dns/lib/lang/fi.lng
index 8df98db8ad..8814a771f8 100755
--- a/interface/web/dns/lib/lang/fi.lng
+++ b/interface/web/dns/lib/lang/fi.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT-tietue';
 $wb['DNS Wizard'] = 'DNS-Velho';
 $wb['Add DNS Zone'] = 'Lisää DNS-alue';
 $wb['Templates'] = 'Mallit';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/fr.lng b/interface/web/dns/lib/lang/fr.lng
index 5cb942f224..f4be1f219c 100644
--- a/interface/web/dns/lib/lang/fr.lng
+++ b/interface/web/dns/lib/lang/fr.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'Assistant DNS';
 $wb['Add DNS Zone'] = 'Ajout zone DNS';
 $wb['Templates'] = 'Gabarits';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/hr.lng b/interface/web/dns/lib/lang/hr.lng
index 36def8e93d..6b4df5167c 100644
--- a/interface/web/dns/lib/lang/hr.lng
+++ b/interface/web/dns/lib/lang/hr.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['DNS'] = 'DNS';
-$wb['Zones'] = 'Zones';
+$wb['Zones'] = 'Zone';
 $wb['DNS A'] = 'DNS A';
 $wb['DNS ALIAS'] = 'DNS ALIAS';
 $wb['DNS CNAME'] = 'DNS CNAME';
@@ -9,12 +9,15 @@ $wb['DNS mx'] = 'DNS mx';
 $wb['DNS ns'] = 'DNS ns';
 $wb['DNS ptr'] = 'DNS ptr';
 $wb['DNS RP'] = 'DNS RP';
-$wb['DNS Zone'] = 'DNS Zone';
-$wb['Records'] = 'Records';
+$wb['DNS Zone'] = 'DNS zona';
+$wb['Records'] = 'DNS zapisi';
 $wb['DNS SRV'] = 'DNS SRV';
-$wb['DNS TXT Record'] = 'DNS TXT Record';
+$wb['DNS TXT Record'] = 'DNS TXT zapis';
 $wb['DNS TXT'] = 'DNS TXT';
-$wb['DNS Wizard'] = 'DNS Wizard';
-$wb['Add DNS Zone'] = 'Add DNS Zone';
-$wb['Templates'] = 'Templates';
+$wb['DNS Wizard'] = 'DNS čarobnjak';
+$wb['Add DNS Zone'] = 'Dodaj DNS zonu';
+$wb['Templates'] = 'Predlošci';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_txt.lng b/interface/web/dns/lib/lang/hr_dns_txt.lng
index 8e6c417d0d..4dcc1367ef 100644
--- a/interface/web/dns/lib/lang/hr_dns_txt.lng
+++ b/interface/web/dns/lib/lang/hr_dns_txt.lng
@@ -1,15 +1,15 @@
 <?php
 $wb['server_id_txt'] = 'Server';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'type';
-$wb['data_txt'] = 'Text';
+$wb['zone_txt'] = 'Zona';
+$wb['name_txt'] = 'Ime hosta';
+$wb['type_txt'] = 'vrsta';
+$wb['data_txt'] = 'Tekst';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['name_error_empty'] = 'The hostname is empty.';
-$wb['name_error_regex'] = 'The hostname has the wrong format.';
-$wb['data_error_empty'] = 'Text empty';
-$wb['data_error_regex'] = 'Text format invalid';
+$wb['active_txt'] = 'Aktivno';
+$wb['limit_dns_record_txt'] = 'Iskorišten je maksimalan broj DNS zapisa za vaš račun.';
+$wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domenu.';
+$wb['name_error_empty'] = 'Ime hosta je prazno.';
+$wb['name_error_regex'] = 'Ime hosta je u pogrešnom formatu.';
+$wb['data_error_empty'] = 'Prazan tekst';
+$wb['data_error_regex'] = 'Neispravan tekst format';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_wizard.lng b/interface/web/dns/lib/lang/hr_dns_wizard.lng
index ffceabb53a..67767f3ab5 100644
--- a/interface/web/dns/lib/lang/hr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/hr_dns_wizard.lng
@@ -1,29 +1,29 @@
 <?php
-$wb['template_id_txt'] = 'Template';
+$wb['template_id_txt'] = 'Predložak';
 $wb['server_id_txt'] = 'Server';
-$wb['client_txt'] = 'Client';
-$wb['btn_save_txt'] = 'Create DNS Record';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['domain_txt'] = 'Domain';
+$wb['client_txt'] = 'Klijent';
+$wb['btn_save_txt'] = 'Kreiraj DNS zapis';
+$wb['btn_cancel_txt'] = 'Odustani';
+$wb['domain_txt'] = 'Domena';
 $wb['email_txt'] = 'Email';
 $wb['ns1_txt'] = 'NS 1';
 $wb['ns2_txt'] = 'NS 2';
-$wb['ip_txt'] = 'IP Address';
-$wb['error_origin_empty'] = 'Origin empty.';
-$wb['error_ns_empty'] = 'NS empty.';
-$wb['error_mbox_empty'] = 'Mbox empty.';
-$wb['error_refresh_empty'] = 'Refresh empty.';
-$wb['error_retry_empty'] = 'Retry empty.';
-$wb['error_expire_empty'] = 'Expire empty.';
-$wb['error_minimum_empty'] = 'Minimum empty.';
-$wb['error_ttl_empty'] = 'TTL empty.';
-$wb['error_domain_empty'] = 'Domain empty';
-$wb['error_ip_empty'] = 'IP empty.';
-$wb['error_ns1_empty'] = 'NS1 empty.';
-$wb['error_ns2_empty'] = 'NS2 empty.';
-$wb['error_email_empty'] = 'EMail empty.';
-$wb['error_domain_regex'] = 'Domain contains invalid characters.';
-$wb['error_ns1_regex'] = 'NS1 contains invalid characters.';
-$wb['error_ns2_regex'] = 'NS2 contains invalid characters.';
-$wb['error_email_regex'] = 'Email does not contain a valid email address.';
+$wb['ip_txt'] = 'IP adresa';
+$wb['error_origin_empty'] = 'Prazno polje: Origin.';
+$wb['error_ns_empty'] = 'Prazno polje: NS.';
+$wb['error_mbox_empty'] = 'Prazno polje: Mbox.';
+$wb['error_refresh_empty'] = 'Prazno polje: Osvježavanje.';
+$wb['error_retry_empty'] = 'Prazno polje: Pokušaj ponovo.';
+$wb['error_expire_empty'] = 'Prazno polje: Ističe.';
+$wb['error_minimum_empty'] = 'Prazno polje: Minimum.';
+$wb['error_ttl_empty'] = 'Prazno polje: TTL.';
+$wb['error_domain_empty'] = 'Prazno polje: Domena.';
+$wb['error_ip_empty'] = 'Prazno polje: IP adresa.';
+$wb['error_ns1_empty'] = 'Prazno polje: NS1.';
+$wb['error_ns2_empty'] = 'Prazno polje: NS1.';
+$wb['error_email_empty'] = 'Prazno polje: Email.';
+$wb['error_domain_regex'] = 'Domena sadrži nedozvoljene znakove.';
+$wb['error_ns1_regex'] = 'NS1 sadrži nedozvoljene znakove.';
+$wb['error_ns2_regex'] = 'NS2 sadrži nedozvoljene znakove.';
+$wb['error_email_regex'] = 'Email adresa nije ispravna.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu.lng b/interface/web/dns/lib/lang/hu.lng
index 0826b0680f..bab141916b 100644
--- a/interface/web/dns/lib/lang/hu.lng
+++ b/interface/web/dns/lib/lang/hu.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Varázsló';
 $wb['Add DNS Zone'] = 'Új DNS Zóna';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/id.lng b/interface/web/dns/lib/lang/id.lng
index f5abc6f411..74b5f80bd1 100644
--- a/interface/web/dns/lib/lang/id.lng
+++ b/interface/web/dns/lib/lang/id.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Tambah Zona DNS';
 $wb['Templates'] = 'Template';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/it.lng b/interface/web/dns/lib/lang/it.lng
index 36def8e93d..c08339fe94 100644
--- a/interface/web/dns/lib/lang/it.lng
+++ b/interface/web/dns/lib/lang/it.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_soa.lng b/interface/web/dns/lib/lang/it_dns_soa.lng
index e3a6b7a8d1..6bfc82ad7f 100644
--- a/interface/web/dns/lib/lang/it_dns_soa.lng
+++ b/interface/web/dns/lib/lang/it_dns_soa.lng
@@ -22,8 +22,8 @@ $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['mbox_error_empty'] = 'Email is empty.';
 $wb['mbox_error_regex'] = 'Email format invalid.';
 $wb['also_notify_txt'] = 'Also Notify';
-$wb['also_notify_error_regex'] = 'Please use an IP address.';
 $wb['update_acl_txt'] = 'Update ACL';
+$wb['also_notify_error_regex'] = 'Please use an IP address.';
 $wb['seconds_txt'] = 'Seconds';
 $wb['eg_domain_tld'] = 'e.g. domain.tld';
 $wb['eg_ns1_domain_tld'] = 'e.g. ns1.domain.tld';
diff --git a/interface/web/dns/lib/lang/ja.lng b/interface/web/dns/lib/lang/ja.lng
index f96696bc84..549cd2d11e 100644
--- a/interface/web/dns/lib/lang/ja.lng
+++ b/interface/web/dns/lib/lang/ja.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/nl.lng b/interface/web/dns/lib/lang/nl.lng
index 36def8e93d..c08339fe94 100644
--- a/interface/web/dns/lib/lang/nl.lng
+++ b/interface/web/dns/lib/lang/nl.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/pl.lng b/interface/web/dns/lib/lang/pl.lng
index 70b26f5f74..43a6a68b38 100644
--- a/interface/web/dns/lib/lang/pl.lng
+++ b/interface/web/dns/lib/lang/pl.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'Kreator DNS';
 $wb['Add DNS Zone'] = 'Dodaj strefÄ™ DNS';
 $wb['Templates'] = 'Szablony';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/pt.lng b/interface/web/dns/lib/lang/pt.lng
index 2a06edc759..316981afed 100644
--- a/interface/web/dns/lib/lang/pt.lng
+++ b/interface/web/dns/lib/lang/pt.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'TXT DNS';
 $wb['DNS Wizard'] = 'Assistente de DNS';
 $wb['Add DNS Zone'] = 'Adicionar Zona DNS';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/ro.lng b/interface/web/dns/lib/lang/ro.lng
index 908f2aa498..f545b0781e 100644
--- a/interface/web/dns/lib/lang/ro.lng
+++ b/interface/web/dns/lib/lang/ro.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/ru.lng b/interface/web/dns/lib/lang/ru.lng
index 72b8517e60..e52b2d6074 100644
--- a/interface/web/dns/lib/lang/ru.lng
+++ b/interface/web/dns/lib/lang/ru.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'Помощник DNS';
 $wb['Add DNS Zone'] = 'Добавить зону DNS';
 $wb['Templates'] = 'Шаблоны';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/se.lng b/interface/web/dns/lib/lang/se.lng
index 36def8e93d..c08339fe94 100644
--- a/interface/web/dns/lib/lang/se.lng
+++ b/interface/web/dns/lib/lang/se.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/sk.lng b/interface/web/dns/lib/lang/sk.lng
index 2f963f6633..e6f62f8147 100644
--- a/interface/web/dns/lib/lang/sk.lng
+++ b/interface/web/dns/lib/lang/sk.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/lib/lang/tr.lng b/interface/web/dns/lib/lang/tr.lng
index b53aff4957..e519b9a395 100644
--- a/interface/web/dns/lib/lang/tr.lng
+++ b/interface/web/dns/lib/lang/tr.lng
@@ -17,4 +17,7 @@ $wb['DNS TXT'] = 'DNS TXT';
 $wb['DNS Wizard'] = 'DNS Sihirbazı';
 $wb['Add DNS Zone'] = 'DNS Zone Ekle';
 $wb['Templates'] = 'Åžablonlar';
+$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
+$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
+$wb['zonefile_to_import_txt'] = 'Zone File';
 ?>
diff --git a/interface/web/dns/templates/dns_import.htm b/interface/web/dns/templates/dns_import.htm
index a8e2351376..90fd78f1af 100644
--- a/interface/web/dns/templates/dns_import.htm
+++ b/interface/web/dns/templates/dns_import.htm
@@ -25,10 +25,11 @@
       </tmpl_if>
 	      <div class="ctrlHolder">
 	      	<label for="domain">{tmpl_var name='domain_txt'}. Can be left empty if domain name is in the filename or the zone-file content.</label>
-	        <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" />
+	        <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" onkeydown="keydown(event.which);" />
 				</div>
 
-      <div class="ctrlHolder" style="margin-left:0px;left:0px;padding-left:0px;">
+      <div class="ctrlHolder"">
+			<label for="file">{tmpl_var name='zonefile_to_import_txt'}</label>
 	      <input name="file" id="file" size="30" type="file" class="fileUpload" />
       </div>
 
@@ -50,3 +51,10 @@
   </div>
   
 </div>
+<script language="JavaScript" type="text/javascript">
+	function keydown(keynum){
+        if(keynum == 13){
+            jQuery('.positive').trigger('click');
+        }
+    }
+</script>
\ No newline at end of file
diff --git a/interface/web/domain/lib/lang/it.lng b/interface/web/domain/lib/lang/it.lng
index d7d7dcf15e..eca9da234b 100644
--- a/interface/web/domain/lib/lang/it.lng
+++ b/interface/web/domain/lib/lang/it.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['Domains'] = 'Domains';
-$wb['domain_txt'] = 'Domain';
-$wb['client_txt'] = 'Client';
-$wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain';
-$wb['error_domain_in webuse'] = 'This domain cannot be deleted, because it is in use as web-domain';
-$wb['error_client_can_not_add_domain'] = 'You cannot add a new domain';
-$wb['error_client_group_id_empty'] = 'You have to select a customer<br>';
+$wb['Domains'] = 'Domini';
+$wb['domain_txt'] = 'Dominio';
+$wb['client_txt'] = 'Cliente';
+$wb['error_domain_in mailuse'] = 'Questo dominio non può essere cancellato in quanto utilizzato come dominio di posta';
+$wb['error_domain_in webuse'] = 'Questo dominio non può essere cancellato in quanto utilizzato come dominio web';
+$wb['error_client_can_not_add_domain'] = 'Impossibile aggiungere nuovo dominio';
+$wb['error_client_group_id_empty'] = 'Devessere selezionato un cliente<br>';
 ?>
diff --git a/interface/web/domain/lib/lang/it_domain.lng b/interface/web/domain/lib/lang/it_domain.lng
index a66a2258af..7c26779aae 100644
--- a/interface/web/domain/lib/lang/it_domain.lng
+++ b/interface/web/domain/lib/lang/it_domain.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['domain_error_empty'] = 'The domain-name is empty';
-$wb['domain_error_unique'] = 'The domain already exists';
-$wb['domain_error_regex'] = 'This domain-name is not allowed';
-$wb['Domain'] = 'Domain';
+$wb['domain_error_empty'] = 'Nome dominio è vuoto';
+$wb['domain_error_unique'] = 'Dominio già esistente';
+$wb['domain_error_regex'] = 'Questo nome a dominio non è permesso';
+$wb['Domain'] = 'Dominio';
 ?>
diff --git a/interface/web/domain/lib/lang/it_domain_list.lng b/interface/web/domain/lib/lang/it_domain_list.lng
index 3310759362..dbc01af4ab 100644
--- a/interface/web/domain/lib/lang/it_domain_list.lng
+++ b/interface/web/domain/lib/lang/it_domain_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Domains';
-$wb['add_new_record_txt'] = 'Add new Domain';
-$wb['domain_txt'] = 'Domain';
+$wb['list_head_txt'] = 'Domini';
+$wb['add_new_record_txt'] = 'Aggiungi nuovo dominio';
+$wb['domain_txt'] = 'Dominio';
 ?>
diff --git a/interface/web/help/lib/module.conf.php b/interface/web/help/lib/module.conf.php
index 06144a14ea..0761a4cbf0 100644
--- a/interface/web/help/lib/module.conf.php
+++ b/interface/web/help/lib/module.conf.php
@@ -10,10 +10,15 @@ $module['title']     = 'top_menu_help';
 $module['template']  = 'module.tpl.htm';
 
 //* The page that is displayed when the module is loaded. the path must is relative to the web directory
-if(isset($_GET['go2_faq_sections_list']))
+if(isset($_GET['go2_faq_sections_list'])){
 	$module['startpage'] = 'help/faq_sections_list.php';
-else
-	$module['startpage'] = 'help/version.php';
+} else {
+	if($_SESSION['s']['user']['typ'] == 'admin') {
+		$module['startpage'] = 'help/version.php';
+	} else {
+		$module['startpage'] = 'help/support_message_list.php';
+	}
+}
 
 //* The width of the tab. Normally you should leave this empty and let the browser define the width automatically.
 $module['tab_width'] = '';
@@ -46,30 +51,34 @@ $module['nav'][] = array( 'title' => 'Support',
 $itemsfaq = array();
 //* admin's tools
 if($_SESSION['s']['user']['typ'] == 'admin') {
-	$itemsfaq[] = array( 	'title'		=> 'Manage Questions',
-							'target'	=> 'content',
-							'link'		=> 'help/faq_manage_questions_list.php');
 	$itemsfaq[] = array( 	'title'		=> 'Manage Sections',
 							'target'	=> 'content',
 							'link'		=> 'help/faq_sections_list.php');
+	$itemsfaq[] = array( 	'title'		=> 'Manage Questions',
+							'target'	=> 'content',
+							'link'		=> 'help/faq_manage_questions_list.php');
+							
+	$module['nav'][] = array( 	'title'	=> 'FAQ',
+								'open'	=> 1,
+								'items'	=> $itemsfaq);
 }
 else
 { //* the user
 	$sql = "SELECT * FROM help_faq_sections";
 	$res = $app->db->queryAllRecords($sql);
 	//* all the content sections
-	if(is_array($res)) {
+	if(is_array($res) && !empty($res)) {
 		foreach($res as $v) {
 			$itemsfaq[] = array( 	'title'		=> $v['hfs_name'],
 									'target'	=> 'content',
 									'link'		=> 'help/faq_list.php?hfs_id='.$v['hfs_id']);
 		}
+		// Display 'FAQ' menu only if there are sections
+		$module['nav'][] = array( 	'title'	=> 'FAQ',
+									'open'	=> 1,
+									'items'	=> $itemsfaq);
 	}
 }
-
-$module['nav'][] = array( 	'title'	=> 'FAQ',
-							'open'	=> 1,
-							'items'	=> $itemsfaq);
 //* -- end of the FAQ menu section
 
 
diff --git a/interface/web/help/version.php b/interface/web/help/version.php
index e53143c215..dc0577e4a4 100644
--- a/interface/web/help/version.php
+++ b/interface/web/help/version.php
@@ -43,8 +43,10 @@ require_once('../../lib/config.inc.php');
 require_once('../../lib/app.inc.php');
 
 //* Check permissions for module
-$app->auth->check_module_permissions('admin');
+$app->auth->check_module_permissions('help');
 
-echo '<p>&nbsp;</p><p>&nbsp;</p><p class="frmTextHead" style="text-align:center;">'.$app->lng('ISPConfig Version:').' '.ISPC_APP_VERSION.'</p>';
+if($_SESSION['s']['user']['typ'] == 'admin') {
+	echo '<p>&nbsp;</p><p>&nbsp;</p><p class="frmTextHead" style="text-align:center;">'.$app->lng('ISPConfig Version:').' '.ISPC_APP_VERSION.'</p>';
+}
 
 ?>
\ No newline at end of file
diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index ecfcf83e09..94b70754fd 100644
--- a/interface/web/js/scrigo.js.php
+++ b/interface/web/js/scrigo.js.php
@@ -101,7 +101,7 @@ function submitLoginForm(formname) {
 	
 }
 
-function submitForm(formname,target) {	
+function submitForm(formname,target) {
 	var submitFormObj = jQuery.ajax({		type: "POST", 
 											url: target,
 											data: jQuery('#'+formname).serialize(),
diff --git a/interface/web/login/lib/lang/hr.lng b/interface/web/login/lib/lang/hr.lng
index e08e450668..a77b975964 100644
--- a/interface/web/login/lib/lang/hr.lng
+++ b/interface/web/login/lib/lang/hr.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['error_user_password_empty'] = 'Username or Password empty.';
-$wb['error_user_password_incorrect'] = 'Username or Password wrong.';
-$wb['error_user_blocked'] = 'User is blocked.';
-$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes';
-$wb['pass_reset_txt'] = 'A new password will be generated and send to your email address if the email address entered below matches the email address in your client settings.';
-$wb['pw_reset'] = 'The password has been reset and send to your email address.';
-$wb['pw_error'] = 'Username or email address does not match.';
-$wb['pw_error_noinput'] = 'Please enter email address and username.';
-$wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel account has been reset. The new password is: ';
-$wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel password has been reset.';
-$wb['user_regex_error'] = 'Username contains unallowed characters or is longer then 64 characters.';
-$wb['pw_error_length'] = 'The password length is > 64 characters.';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
+$wb['error_user_password_empty'] = 'Korisničko ime ili šifra nisu upisani.';
+$wb['error_user_password_incorrect'] = 'Pogrešno korisničko ime ili šifra.';
+$wb['error_user_blocked'] = 'Korisnik je blokiran.';
+$wb['error_user_too_many_logins'] = 'Previše pogrešnih logiranja , molimo pokušajte ponovno za 15 minuta.';
+$wb['pass_reset_txt'] = 'Nova šifra će biti generirana i poslana na email ako je email adresa unešena ispod jednaka onoj u bazi klijenata..';
+$wb['pw_reset'] = 'Šifra je resetirana i poslana na vašu email adresu.';
+$wb['pw_error'] = 'Korisničko ime ili šifra nisu ispravni.';
+$wb['pw_error_noinput'] = 'Unesite email adresu i korisničko ime.';
+$wb['pw_reset_mail_msg'] = 'Šifra za ISPConfig 3 control panel račun je resetirana. Vaša nova šifra je: ';
+$wb['pw_reset_mail_title'] = 'Resetirana ISPConfig 3 control panel Å¡ifra.';
+$wb['user_regex_error'] = 'Korisničko ime sadrži nedozvoljene znakove ili je dulje od 64 znaka.';
+$wb['pw_error_length'] = 'Duljina Å¡ifre je > 64 znakova.';
+$wb['username_txt'] = 'Korisničko ime';
+$wb['password_txt'] = 'Å ifra';
 $wb['login_button_txt'] = 'Login';
 ?>
diff --git a/interface/web/login/lib/lang/it.lng b/interface/web/login/lib/lang/it.lng
index 23940d3f29..3e99ec0b18 100644
--- a/interface/web/login/lib/lang/it.lng
+++ b/interface/web/login/lib/lang/it.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['pass_reset_txt'] = 'Una nuova password sarà generata e spedita alla tua email se l`email inserita corrisponde a quella delle impostazioni dell`utente.';
+$wb['pass_reset_txt'] = 'Una nuova password sarà  generata e spedita alla tua email se lemail inserita corrisponde a quella delle impostazioni dellutente.';
 $wb['pw_reset'] = 'La password è stata reimpostata e spedita al tuo indirizzo mail.';
 $wb['pw_error'] = 'Nome utente o email non corrispondenti.';
 $wb['pw_error_noinput'] = 'Inserisci nome utente e indirizzo email.';
 $wb['pw_reset_mail_msg'] = 'La password nel tuo pannello di controllo ISPConfig 3 è stata reimpostata. La nuova password è: ';
 $wb['pw_reset_mail_title'] = 'Password del pannello di controllo ISPConfig 3 reimpostata.';
-$wb['user_regex_error'] = 'Username contains unallowed characters or is longer then 64 characters.';
-$wb['pw_error_length'] = 'The password length is > 64 characters.';
-$wb['error_user_password_empty'] = 'Username or Password empty.';
-$wb['error_user_password_incorrect'] = 'Username or Password wrong.';
-$wb['error_user_blocked'] = 'User is blocked.';
-$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes';
-$wb['username_txt'] = 'Username';
+$wb['user_regex_error'] = 'Nome utente contenente caratteri non permessi oppure più lungo di 64 caratteri.';
+$wb['pw_error_length'] = 'Lunghezza password maggiore di 64 caratteri.';
+$wb['error_user_password_empty'] = 'Nome utente o password vuoti.';
+$wb['error_user_password_incorrect'] = 'Nome utente o password errati.';
+$wb['error_user_blocked'] = 'Utente bloccato.';
+$wb['error_user_too_many_logins'] = 'Troppi tentativi errati di login. Riprovare tra 15 minuti';
+$wb['username_txt'] = 'Nome utente';
 $wb['password_txt'] = 'Password';
 $wb['login_button_txt'] = 'Login';
 ?>
diff --git a/interface/web/mail/lib/lang/it.lng b/interface/web/mail/lib/lang/it.lng
index e3a31e332f..3fd27265fe 100644
--- a/interface/web/mail/lib/lang/it.lng
+++ b/interface/web/mail/lib/lang/it.lng
@@ -1,47 +1,47 @@
 <?php
-$wb['Email Alias'] = 'Email Alias';
-$wb['Email Blacklist'] = 'Email Blacklist';
+$wb['Email Alias'] = 'Alias email';
+$wb['Email Blacklist'] = 'Blacklist email';
 $wb['Blacklist'] = 'Blacklist';
-$wb['Mail Content Filter'] = 'Mail Content Filter';
-$wb['Filter'] = 'Filter';
-$wb['Mail Domain'] = 'Mail Domain';
-$wb['Domain'] = 'Domain';
-$wb['Email Catchall'] = 'Email Catchall';
-$wb['Email Forward'] = 'Email Forward';
-$wb['Get Email'] = 'Get Email';
+$wb['Mail Content Filter'] = 'Filtro contenuti posta';
+$wb['Filter'] = 'Filtro';
+$wb['Mail Domain'] = 'Dominio email';
+$wb['Domain'] = 'Dominio';
+$wb['Email Catchall'] = 'Catchall email';
+$wb['Email Forward'] = 'Inoltro email';
+$wb['Get Email'] = 'Scarica email';
 $wb['Spamfilter'] = 'Spamfilter';
-$wb['Email Routing'] = 'Email Routing';
+$wb['Email Routing'] = 'Routing email';
 $wb['Email transport'] = 'Email transport';
 $wb['Mailbox'] = 'Mailbox';
-$wb['Autoresponder'] = 'Autoresponder';
-$wb['Mail Filter'] = 'Mail Filter';
-$wb['Custom Rules'] = 'Custom Rules';
-$wb['Email filter'] = 'Email filter';
-$wb['Email Whitelist'] = 'Email Whitelist';
+$wb['Autoresponder'] = 'Autorisponditore';
+$wb['Mail Filter'] = 'Filtro posta';
+$wb['Custom Rules'] = 'Regole personalizzate';
+$wb['Email filter'] = 'Filtro email';
+$wb['Email Whitelist'] = 'Whitelist email';
 $wb['Whitelist'] = 'Whitelist';
-$wb['Spamfilter blacklist'] = 'Spamfilter blacklist';
-$wb['Spamfilter Config'] = 'Spamfilter Config';
+$wb['Spamfilter blacklist'] = 'Blacklist spamfilter';
+$wb['Spamfilter Config'] = 'Configurazione spamfilter';
 $wb['Server'] = 'Server';
-$wb['Spamfilter policy'] = 'Spamfilter policy';
+$wb['Spamfilter policy'] = 'Policy spamfilter';
 $wb['Policy'] = 'Policy';
-$wb['Quarantine'] = 'Quarantine';
+$wb['Quarantine'] = 'Quarantena';
 $wb['Tag-Level'] = 'Tag-Level';
-$wb['Other'] = 'Other';
-$wb['Spamfilter users'] = 'Spamfilter users';
-$wb['Users'] = 'Users';
-$wb['Spamfilter Whitelist'] = 'Spamfilter Whitelist';
+$wb['Other'] = 'Altro';
+$wb['Spamfilter users'] = 'Utenti spamfilter';
+$wb['Users'] = 'Utenti';
+$wb['Spamfilter Whitelist'] = 'Whitelist spamfilter';
 $wb['Email'] = 'Email';
-$wb['Email Mailbox'] = 'Email Mailbox';
-$wb['Email Accounts'] = 'Email Accounts';
-$wb['User / Domain'] = 'User / Domain';
-$wb['Server Settings'] = 'Server Settings';
+$wb['Email Mailbox'] = 'Casella email';
+$wb['Email Accounts'] = 'Account email';
+$wb['User / Domain'] = 'Utente / Dominio';
+$wb['Server Settings'] = 'Impostazioni server';
 $wb['Fetchmail'] = 'Fetchmail';
-$wb['Mailbox traffic'] = 'Mailbox traffic';
-$wb['Statistics'] = 'Statistics';
-$wb['Postfix Whitelist'] = 'Postfix Whitelist';
-$wb['Postfix Blacklist'] = 'Postfix Blacklist';
-$wb['Content Filter'] = 'Content Filter';
-$wb['Global Filters'] = 'Global Filters';
-$wb['Domain Alias'] = 'Domain Alias';
-$wb['Relay Recipients'] = 'Relay Recipients';
+$wb['Mailbox traffic'] = 'Traffico casella';
+$wb['Statistics'] = 'Statistiche';
+$wb['Postfix Whitelist'] = 'Whitelist Postfix';
+$wb['Postfix Blacklist'] = 'Blacklist Postfix';
+$wb['Content Filter'] = 'Filtri contenuti';
+$wb['Global Filters'] = 'Filtri globali';
+$wb['Domain Alias'] = 'Alias dominio';
+$wb['Relay Recipients'] = 'Destinatari inoltro';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_alias.lng b/interface/web/mail/lib/lang/it_mail_alias.lng
index 7f149eb964..444946849d 100644
--- a/interface/web/mail/lib/lang/it_mail_alias.lng
+++ b/interface/web/mail/lib/lang/it_mail_alias.lng
@@ -1,12 +1,12 @@
 <?php
 $wb['email_txt'] = 'Email';
-$wb['destination_txt'] = 'Destination';
-$wb['active_txt'] = 'Active';
-$wb['email_error_isemail'] = 'Email address is invalid.';
-$wb['email_error_unique'] = 'Duplicate Emailaddress.';
-$wb['no_domain_perm'] = 'You have no permission for this domain.';
-$wb['destination_error_isemail'] = 'Destination Emailaddress is invalid.';
-$wb['limit_mailalias_txt'] = 'The max. number of email aliases for your account is reached.';
-$wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address';
+$wb['destination_txt'] = 'Destinatario';
+$wb['active_txt'] = 'Attivo';
+$wb['email_error_isemail'] = 'Indirizzo email non valido.';
+$wb['email_error_unique'] = 'Indirizzo email duplicato.';
+$wb['no_domain_perm'] = 'Permessi non sufficienti per questo dominio.';
+$wb['destination_error_isemail'] = 'Email destinatario non valida.';
+$wb['limit_mailalias_txt'] = 'Raggiunto numero massimo di alias email per questo account.';
+$wb['duplicate_mailbox_txt'] = 'Cé già una casella di posta con questo indirizzo email.';
 $wb['domain_txt'] = 'Domain';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_domain.lng b/interface/web/mail/lib/lang/it_mail_domain.lng
index 6120e82b7d..5e6342bd09 100644
--- a/interface/web/mail/lib/lang/it_mail_domain.lng
+++ b/interface/web/mail/lib/lang/it_mail_domain.lng
@@ -1,13 +1,13 @@
 <?php
 $wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['type_txt'] = 'Type';
-$wb['active_txt'] = 'Active';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['domain_error_unique'] = 'Duplicate Domain.';
-$wb['domain_error_regex'] = 'Invalid domain name.';
-$wb['client_txt'] = 'Client';
-$wb['limit_maildomain_txt'] = 'The max. number of email domains for your account is reached.';
+$wb['domain_txt'] = 'Dominio';
+$wb['type_txt'] = 'Tipo';
+$wb['active_txt'] = 'Attivo';
+$wb['domain_error_empty'] = 'Dominio vuoto.';
+$wb['domain_error_unique'] = 'Dominio duplicato.';
+$wb['domain_error_regex'] = 'Nome dominio non valido.';
+$wb['client_txt'] = 'Cleient';
+$wb['limit_maildomain_txt'] = 'Raggiunto numero massimo di domini email per questo account.';
 $wb['policy_txt'] = 'Spamfilter';
-$wb['no_policy'] = '- not enabled -';
+$wb['no_policy'] = '- non abilitato -';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/it_mail_domain_admin_list.lng
index aaab4b433e..2e29b24756 100644
--- a/interface/web/mail/lib/lang/it_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/it_mail_domain_admin_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Email Domain';
+$wb['list_head_txt'] = 'Dominio email';
 $wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new Domain';
-$wb['active_txt'] = 'Active';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['domain_txt'] = 'Dominio';
+$wb['add_new_record_txt'] = 'Nuovo dominio';
+$wb['active_txt'] = 'Attivo';
+$wb['sys_groupid_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_user_filter_list.lng b/interface/web/mail/lib/lang/it_mail_user_filter_list.lng
index 2754259f47..1e94a4c1c4 100644
--- a/interface/web/mail/lib/lang/it_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/it_mail_user_filter_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['rulename_txt'] = 'Name';
-$wb['add_new_record_txt'] = 'Add new Filter';
-$wb['page_txt'] = 'Page';
-$wb['page_of_txt'] = 'of';
-$wb['delete_confirmation'] = 'Do you really want to Delete the mailfilter?';
+$wb['rulename_txt'] = 'Nome';
+$wb['add_new_record_txt'] = 'Nuovo filtro';
+$wb['page_txt'] = 'Pagina';
+$wb['page_of_txt'] = 'di';
+$wb['delete_confirmation'] = 'Vuoi davvero cancellare il filtro email?';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_user_list.lng b/interface/web/mail/lib/lang/it_mail_user_list.lng
index 3417eaacfd..5d5bb3b1a9 100644
--- a/interface/web/mail/lib/lang/it_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/it_mail_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Mailbox';
+$wb['list_head_txt'] = 'Casella email';
 $wb['email_txt'] = 'Email';
-$wb['autoresponder_txt'] = 'Autoresponder';
-$wb['add_new_record_txt'] = 'Add new Mailbox';
-$wb['name_txt'] = 'Realname';
+$wb['autoresponder_txt'] = 'Autorisponditore';
+$wb['add_new_record_txt'] = 'Nuova casella email';
+$wb['name_txt'] = 'Nome reale';
 $wb['login_txt'] = 'Login';
 ?>
diff --git a/interface/web/mail/lib/lang/it_mail_user_stats_list.lng b/interface/web/mail/lib/lang/it_mail_user_stats_list.lng
index edde65bd7a..60ee81c493 100644
--- a/interface/web/mail/lib/lang/it_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/it_mail_user_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Mail traffic';
+$wb['list_head_txt'] = 'Traffico email';
 $wb['email_txt'] = 'Email';
-$wb['this_month_txt'] = 'This month';
-$wb['last_month_txt'] = 'Last month';
-$wb['this_year_txt'] = 'This year';
-$wb['last_year_txt'] = 'Last year';
+$wb['this_month_txt'] = 'Questo mese';
+$wb['last_month_txt'] = 'Mese scorso';
+$wb['this_year_txt'] = 'Questanno';
+$wb['last_year_txt'] = 'Anno scorso';
 ?>
diff --git a/interface/web/mail/lib/lang/it_spamfilter_config_list.lng b/interface/web/mail/lib/lang/it_spamfilter_config_list.lng
index 70e49e22b8..1069a579d2 100644
--- a/interface/web/mail/lib/lang/it_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/it_spamfilter_config_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Server Configuration';
+$wb['list_head_txt'] = 'Configurazione server';
 $wb['server_name_txt'] = 'Server';
 $wb['server_id_txt'] = 'server_id';
 ?>
diff --git a/interface/web/mail/lib/lang/it_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/it_spamfilter_whitelist.lng
index 5a85949ab6..0ccc76b794 100644
--- a/interface/web/mail/lib/lang/it_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/it_spamfilter_whitelist.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['server_id_txt'] = 'Server';
 $wb['wb_txt'] = 'wb';
-$wb['rid_txt'] = 'User';
+$wb['rid_txt'] = 'Utente';
 $wb['email_txt'] = 'Email';
-$wb['priority_txt'] = 'Priority';
-$wb['active_txt'] = 'Active';
-$wb['limit_spamfilter_wblist_txt'] = 'The max. number of White- or Blacklist records for your account is reached.';
+$wb['priority_txt'] = 'Priorità';
+$wb['active_txt'] = 'Attivo';
+$wb['limit_spamfilter_wblist_txt'] = 'Raggiunto numero massimo di record white/blacklist per questo account.';
 ?>
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index 06ce64baf7..5de100e39c 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -80,10 +80,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = '';
 			if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = ($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
@@ -105,10 +105,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/monitor/lib/lang/ar.lng b/interface/web/monitor/lib/lang/ar.lng
index b40f66d3ac..01a79635a2 100644
--- a/interface/web/monitor/lib/lang/ar.lng
+++ b/interface/web/monitor/lib/lang/ar.lng
@@ -143,4 +143,7 @@ $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_updates_nosupport_txt'] = 'Your distribution is not supported for this monitoring';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/bg.lng b/interface/web/monitor/lib/lang/bg.lng
index bd849c9f1f..cfe58db4ba 100644
--- a/interface/web/monitor/lib/lang/bg.lng
+++ b/interface/web/monitor/lib/lang/bg.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng
index cf921f3f79..d3f3d30799 100644
--- a/interface/web/monitor/lib/lang/br.lng
+++ b/interface/web/monitor/lib/lang/br.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'Existem diversas falhas no be
 $wb['monitor_title_beancounter_txt'] = 'BeanCounter OpenVz VE';
 $wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um um conteiner openVZ e não contém informações de beancounter';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng
index 71b4d690c7..7e79c6eaa8 100644
--- a/interface/web/monitor/lib/lang/cz.lng
+++ b/interface/web/monitor/lib/lang/cz.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/de.lng b/interface/web/monitor/lib/lang/de.lng
index 0eb5a6bcff..6490300e0e 100644
--- a/interface/web/monitor/lib/lang/de.lng
+++ b/interface/web/monitor/lib/lang/de.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/el.lng b/interface/web/monitor/lib/lang/el.lng
index de07bd39de..e7e20e63dc 100644
--- a/interface/web/monitor/lib/lang/el.lng
+++ b/interface/web/monitor/lib/lang/el.lng
@@ -143,4 +143,7 @@ $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_updates_nosupport_txt'] = 'Αυτή η εποπτεία δεν υποστηρίζεται για τη διανομή σας ';
 $wb['monitor_beancounter_nosupport_txt'] = 'Αυτός ο server δεν είναι ένας OpenVz VE και δεν έχει πληροφορίες για τον beancounter';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng
index 8f2cf4670d..e1be79b191 100644
--- a/interface/web/monitor/lib/lang/en.lng
+++ b/interface/web/monitor/lib/lang/en.lng
@@ -45,6 +45,9 @@ $wb['Show Clamav-Log'] = 'Show Clamav-Log';
 $wb['Show ISPConfig-Log'] = 'Show ISPConfig-Log';
 $wb['Show RKHunter-Log'] = 'Show RKHunter-Log';
 $wb['Show Jobqueue'] = 'Show Jobqueue';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 $wb['monitor_general_serverstate_txt'] = 'Server State';
 $wb['monitor_general_systemstate_txt'] = 'System State';
 $wb['monitor_diskusage_filesystem_txt'] = 'Filesystem';
diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng
index 313feb6235..2d6815b84a 100644
--- a/interface/web/monitor/lib/lang/es.lng
+++ b/interface/web/monitor/lib/lang/es.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/fi.lng b/interface/web/monitor/lib/lang/fi.lng
index 96b11901fb..4036b3c5c1 100755
--- a/interface/web/monitor/lib/lang/fi.lng
+++ b/interface/web/monitor/lib/lang/fi.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng
index 092777b692..37f8fb0140 100644
--- a/interface/web/monitor/lib/lang/fr.lng
+++ b/interface/web/monitor/lib/lang/fr.lng
@@ -143,4 +143,7 @@ $wb['monitor_title_fail2ban_txt'] = 'Log Fail2Ban';
 $wb['monitor_title_beancounter_txt'] = 'Compteur OpenVz VE';
 $wb['monitor_beancounter_nosupport_txt'] = 'Ce serveur nest pas un VE OpenVz et na pas dinformation de compteur';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng
index 1be9f859a5..5692863c48 100644
--- a/interface/web/monitor/lib/lang/hr.lng
+++ b/interface/web/monitor/lib/lang/hr.lng
@@ -1,24 +1,24 @@
 <?php
-$wb['Server online since'] = 'Server online od';
+$wb['Server online since'] = 'Server online';
 $wb['Users online'] = 'Korisnika';
 $wb['System load 1 minute'] = 'Opterećenje sistema 1 minuta';
 $wb['System load 5 minutes'] = 'Opterećenje sistema 5 minuta';
 $wb['System load 15 minutes'] = 'Opterećenje sistema 15 minuta';
-$wb['Server Load'] = 'Opterećenje sistema';
+$wb['Server Load'] = 'Opterećenje servera';
 $wb['Disk usage'] = 'Potrošnja diska';
 $wb['Memory usage'] = 'Potrošnja memorije';
-$wb['no_data_serverload_txt'] = 'No data about the server load available at the moment. Please check again later.';
-$wb['no_data_memusage_txt'] = 'No data about the memory usage available at the moment. Please check again later.';
-$wb['no_data_diskusage_txt'] = 'No data about the disk usage available at the moment. Please check again later.';
-$wb['no_data_cpuinfo_txt'] = 'No data about the CPU available at the moment. Please check again later.';
-$wb['no_data_services_txt'] = 'No data about the services available at the moment. Please check again later.';
-$wb['no_data_updates_txt'] = 'No data about updates available at the moment. Please check again later.';
-$wb['no_data_raid_txt'] = 'No data about RAID available at the moment. Please check again later.';
-$wb['no_data_rkhunter_txt'] = 'No data about RKHunter available at the moment. Please check again later.';
-$wb['no_data_mailq_txt'] = 'No data Mailqueue available at the moment. Please check again later.';
-$wb['no_logdata_txt'] = 'No log data available at the moment. Please check again later.';
-$wb['Monitoring'] = 'Monitoring';
-$wb['Server to Monitor'] = 'Server za monitoring';
+$wb['no_data_serverload_txt'] = 'Nema podataka o opterećenju servera. Pokušajte ponovno kasnije.';
+$wb['no_data_memusage_txt'] = 'Nema podataka o zauzeću memorije servera. Pokušajte ponovno kasnije.';
+$wb['no_data_diskusage_txt'] = 'Nema podataka o zauzeću diska servera. Pokušajte ponovno kasnije.';
+$wb['no_data_cpuinfo_txt'] = 'Nema podataka o opterećenju procesora. Pokušajte ponovno kasnije.';
+$wb['no_data_services_txt'] = 'Nema podataka o servisima servera. Pokušajte ponovno kasnije.';
+$wb['no_data_updates_txt'] = 'Nema podataka o nadogradnjama servera. Pokušajte ponovno kasnije.';
+$wb['no_data_raid_txt'] = 'Nema podataka o stanju RAID-a. Pokušajte ponovno kasnije.';
+$wb['no_data_rkhunter_txt'] = 'Nema podataka o RKHunter-u. Pokušajte ponovno kasnije.';
+$wb['no_data_mailq_txt'] = 'Nema podataka o procesiranju mailova . Pokušajte ponovno kasnije.';
+$wb['no_logdata_txt'] = 'Nema log-ova. Pokušajte ponovno kasnije.';
+$wb['Monitoring'] = 'Nadzor';
+$wb['Server to Monitor'] = 'Server za nadzor';
 $wb['Logfiles'] = 'Log datoteke';
 $wb['Status of services'] = 'Status servisa';
 $wb['No Refresh'] = 'Ne osvježuj';
@@ -26,102 +26,102 @@ $wb['minutes'] = 'minuta';
 $wb['Show Overview'] = 'Prikaži stanje';
 $wb['System State (All Servers)'] = 'Prikaži stanje (svi serveri)';
 $wb['Hardware-Information'] = 'Informacije o hardveru';
-$wb['Show CPU info'] = 'Prikaži CPU';
+$wb['Show CPU info'] = 'Prikaži procesor';
 $wb['Server State'] = 'Stanje servera';
-$wb['Show Update State'] = 'Show Update State';
+$wb['Show Update State'] = 'Prikaži stanje nadogradnje';
 $wb['Show RAID state'] = 'Prikaži stanje RAID-a';
 $wb['Show Server load'] = 'Prikaži opterećenje servera';
-$wb['Show Disk usage'] = 'Prikaži zauzeće diska';
-$wb['Show Memory usage'] = 'Prikaži zauzeće memorije';
+$wb['Show Disk usage'] = 'Prikaži stanje diska';
+$wb['Show Memory usage'] = 'Prikaži stanje memorije';
 $wb['Show Services'] = 'Prikaži servise';
-$wb['Show Mail-Queue'] = 'Show Mail Queue';
-$wb['Show Mail-Log'] = 'Show Mail Log';
-$wb['Show Mail warn-Log'] = 'Show Mail Warn-Log';
-$wb['Show Mail err-Log'] = 'Show Mail Error-Log';
-$wb['Show System-Log'] = 'Show System-Log';
-$wb['Show ISPC Cron-Log'] = 'Show Control panel Cron-Log';
-$wb['Show Freshclam-Log'] = 'Show Freshclam-Log';
-$wb['Show Clamav-Log'] = 'Show Clamav-Log';
-$wb['Show ISPConfig-Log'] = 'Show Control panel-Log';
-$wb['Show RKHunter-Log'] = 'Show RKHunter-Log';
-$wb['Show Jobqueue'] = 'Show Jobqueue';
-$wb['monitor_general_serverstate_txt'] = 'Server State';
-$wb['monitor_general_systemstate_txt'] = 'System State';
-$wb['monitor_diskusage_filesystem_txt'] = 'Filesystem';
-$wb['monitor_diskusage_type_txt'] = 'Type';
-$wb['monitor_diskusage_size_txt'] = 'Size';
-$wb['monitor_diskusage_used_txt'] = 'Used';
-$wb['monitor_diskusage_available_txt'] = 'Available';
-$wb['monitor_diskusage_usage_txt'] = 'Use%';
-$wb['monitor_diskusage_mounted_txt'] = 'Mounted on';
-$wb['monitor_logs_mail_txt'] = 'Mail - Log';
-$wb['monitor_logs_mailwarn_txt'] = 'Mail-Warn - Log';
-$wb['monitor_logs_mailerr_txt'] = 'Mail-Error - Log';
-$wb['monitor_logs_messages_txt'] = 'System Messages - Log';
-$wb['monitor_logs_ispccron_txt'] = 'Control panel Cron - Log';
-$wb['monitor_logs_freshclam_txt'] = 'Freshclam - Log';
-$wb['monitor_logs_clamav_txt'] = 'ClamAV - Log';
-$wb['monitor_logs_ispc_txt'] = 'Control panel - Log';
-$wb['monitor_nosupportedraid1_txt'] = 'At the moment, we support mdadm or mpt-status for monitoring the RAID.<br>We cant find any of them at your server.<br><br>This means we can not support your RAID yet.';
-$wb['monitor_norkhunter_txt'] = 'RKHunter is not installed, so there is no log data';
+$wb['Show Mail-Queue'] = 'Prikaži mail queue';
+$wb['Show Mail-Log'] = 'Prikaži mail log';
+$wb['Show Mail warn-Log'] = 'Prikaži mail log (warn)';
+$wb['Show Mail err-Log'] = 'Prikaži mail log (error)';
+$wb['Show System-Log'] = 'Prikaži sistemski log';
+$wb['Show ISPC Cron-Log'] = 'Prikaži control panel cron log';
+$wb['Show Freshclam-Log'] = 'Prikaži freshclam log';
+$wb['Show Clamav-Log'] = 'Prikaži clamav log';
+$wb['Show ISPConfig-Log'] = 'Prikaži control panel log';
+$wb['Show RKHunter-Log'] = 'Prikaži RKHunter log';
+$wb['Show Jobqueue'] = 'Prikaži popis zadataka';
+$wb['monitor_general_serverstate_txt'] = 'Stanje servera';
+$wb['monitor_general_systemstate_txt'] = 'Stanje sistema';
+$wb['monitor_diskusage_filesystem_txt'] = 'Datotečni sustav';
+$wb['monitor_diskusage_type_txt'] = 'Vrsta';
+$wb['monitor_diskusage_size_txt'] = 'Veličina';
+$wb['monitor_diskusage_used_txt'] = 'U upotrebi';
+$wb['monitor_diskusage_available_txt'] = 'Slobodno';
+$wb['monitor_diskusage_usage_txt'] = 'Zauzeto %';
+$wb['monitor_diskusage_mounted_txt'] = 'Montirano na ';
+$wb['monitor_logs_mail_txt'] = 'Mail log-ovi';
+$wb['monitor_logs_mailwarn_txt'] = 'Mail log upozorenja';
+$wb['monitor_logs_mailerr_txt'] = 'Mail log greške';
+$wb['monitor_logs_messages_txt'] = 'Sistemski log-ovi';
+$wb['monitor_logs_ispccron_txt'] = 'Control panel cron log-ovi';
+$wb['monitor_logs_freshclam_txt'] = 'Freshclam log-ovi';
+$wb['monitor_logs_clamav_txt'] = 'ClamAV log-ovi';
+$wb['monitor_logs_ispc_txt'] = 'Control panel log-ovi';
+$wb['monitor_nosupportedraid1_txt'] = 'Trenutno je podržan samo mdadm ili mpt-status za nadzor RAID-a.<br>Ne možemo pronaći niti jedan na vašem serveru.<br><br>To znači da ne možemo podržati vaš RAID.';
+$wb['monitor_norkhunter_txt'] = 'RKHunter nije instaliran, stoga nema log podataka.';
 $wb['monitor_serverstate_server_txt'] = 'Server';
 $wb['monitor_serverstate_state_txt'] = 'State';
-$wb['monitor_serverstate_unknown_txt'] = 'unknown';
-$wb['monitor_serverstate_info_txt'] = 'info';
-$wb['monitor_serverstate_warning_txt'] = 'warning';
-$wb['monitor_serverstate_critical_txt'] = 'critical';
-$wb['monitor_serverstate_error_txt'] = 'error';
+$wb['monitor_serverstate_unknown_txt'] = 'nepoznatih';
+$wb['monitor_serverstate_info_txt'] = 'informacija';
+$wb['monitor_serverstate_warning_txt'] = 'upozorenja';
+$wb['monitor_serverstate_critical_txt'] = 'kritičnih';
+$wb['monitor_serverstate_error_txt'] = 'grešaka/i';
 $wb['monitor_serverstate_moreinfo_txt'] = 'Više informacija...';
 $wb['monitor_serverstate_more_txt'] = 'Više...';
 $wb['monitor_serverstate_fclamok_txt'] = 'Antivirusna zaštita je ok';
-$wb['monitor_serverstate_fclamoutdated_txt'] = 'Your virus protection is OUTDATED!';
+$wb['monitor_serverstate_fclamoutdated_txt'] = 'Vaša antivirusna zaštita je stara!';
 $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!';
-$wb['monitor_serverstate_hdok_txt'] = 'The state of your Hard-Disk space is ok';
-$wb['monitor_serverstate_hdgoingfull_txt'] = 'Your Hard-Disk space is going full';
-$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Your Hard-Disk is nearly full';
-$wb['monitor_serverstate_hdveryfull_txt'] = 'Your Hard-Disk is very full';
-$wb['monitor_serverstate_hdfull_txt'] = 'Your Hard-Disk has no more space left';
-$wb['monitor_serverstate_hdunknown_txt'] = 'Hard-Disk: ???';
+$wb['monitor_serverstate_hdok_txt'] = 'Stanje vašeg tvrdog diska je ok';
+$wb['monitor_serverstate_hdgoingfull_txt'] = 'Vaš tvrdi disk će biti popunjen';
+$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Vaš tvrdi disk je skoro pun';
+$wb['monitor_serverstate_hdveryfull_txt'] = 'Vaš tvrdi disk je blizu popunjenosti';
+$wb['monitor_serverstate_hdfull_txt'] = 'Vaš tvrdi disk je popunjen';
+$wb['monitor_serverstate_hdunknown_txt'] = 'Tvrdi disk: ???';
 $wb['monitor_serverstate_listok_txt'] = 'Stanje servera je dobro';
 $wb['monitor_serverstate_listinfo_txt'] = 'info';
 $wb['monitor_serverstate_listwarning_txt'] = 'upozorenje';
 $wb['monitor_serverstate_listcritical_txt'] = 'kritično';
 $wb['monitor_serverstate_listerror_txt'] = 'greška';
 $wb['monitor_serverstate_listunknown_txt'] = 'nepoznato';
-$wb['monitor_serverstate_loadok_txt'] = 'Your Server load is ok';
-$wb['monitor_serverstate_loadheavy_txt'] = 'Your Server in under heavy load';
-$wb['monitor_serverstate_loadhigh_txt'] = 'Your Server in under high load';
-$wb['monitor_serverstate_loaghigher_txt'] = 'Your Server in under higher load';
-$wb['monitor_serverstate_loadhighest_txt'] = 'Your Server in under highest load';
-$wb['monitor_serverstate_loadunknown_txt'] = 'Server Load: ???';
-$wb['monitor_serverstate_mailqok_txt'] = 'Your Mail queue load is ok';
-$wb['monitor_serverstate_mailqheavy_txt'] = 'Your Mail queue is under heavy load';
-$wb['monitor_serverstate_mailqhigh_txt'] = 'Your Mail queue is under high load';
-$wb['monitor_serverstate_mailqhigher_txt'] = 'Your Mail queue is under higher load';
-$wb['monitor_serverstate_mailqhighest_txt'] = 'Your Mail queue is under highest load';
+$wb['monitor_serverstate_loadok_txt'] = 'Opterećenje servera je ok';
+$wb['monitor_serverstate_loadheavy_txt'] = 'Server je pod opterećenjem';
+$wb['monitor_serverstate_loadhigh_txt'] = 'Server je pod velikim opterećenjem';
+$wb['monitor_serverstate_loaghigher_txt'] = 'Server je pod vrlo velikim opterećenjem';
+$wb['monitor_serverstate_loadhighest_txt'] = 'Server je maksimalno opterećen';
+$wb['monitor_serverstate_loadunknown_txt'] = 'Opterećenje servera: ???';
+$wb['monitor_serverstate_mailqok_txt'] = 'Mail queue opterećenje je ok';
+$wb['monitor_serverstate_mailqheavy_txt'] = 'Mail queue je pod opterećenjem';
+$wb['monitor_serverstate_mailqhigh_txt'] = 'Mail queue je pod velikim opterećenjem';
+$wb['monitor_serverstate_mailqhigher_txt'] = 'Mail queue je pod vrlo velikim opterećenjem';
+$wb['monitor_serverstate_mailqhighest_txt'] = 'Mail queue je maksimalno opterećen';
 $wb['monitor_serverstate_mailqunknown_txt'] = 'Mail queue: ???';
-$wb['monitor_serverstate_raidok_txt'] = 'Your RAID is ok';
-$wb['monitor_serverstate_raidresync_txt'] = 'Your RAID is in RESYNC mode';
-$wb['monitor_serverstate_raidfault_txt'] = 'Your RAID has one FAULTY disk. Replace as soon as possible!';
-$wb['monitor_serverstate_raiderror_txt'] = 'Your RAID is not working anymore';
-$wb['monitor_serverstate_raidunknown_txt'] = 'RAID state: ???';
-$wb['monitor_serverstate_servicesonline_txt'] = 'All needed services are online';
-$wb['monitor_serverstate_servicesoffline_txt'] = 'One or more needed services are offline';
-$wb['monitor_serverstate_servicesunknown_txt'] = 'Services: ???';
-$wb['monitor_serverstate_syslogok_txt'] = 'The System Log is O.K.';
-$wb['monitor_serverstate_syslogwarning_txt'] = 'There are some warnings in your system log';
-$wb['monitor_serverstate_syslogerror_txt'] = 'There are errors in your system log';
-$wb['monitor_serverstate_syslogunknown_txt'] = 'System log: ???';
-$wb['monitor_serverstate_updatesok_txt'] = 'Your system is up to date.';
-$wb['monitor_serverstate_updatesneeded_txt'] = 'One or more components needs an update';
-$wb['monitor_serverstate_updatesunknown_txt'] = 'System Update: ???';
-$wb['monitor_serverstate_beancounterok_txt'] = 'The beancounter is ok';
-$wb['monitor_serverstate_beancounterinfo_txt'] = 'There are vew failure in the beancounter';
-$wb['monitor_serverstate_beancounterwarning_txt'] = 'There are some failure in the beancounter';
-$wb['monitor_serverstate_beancountercritical_txt'] = 'There are many failure in the beancounter';
-$wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in the beancounter';
-$wb['monitor_services_online_txt'] = 'Online';
-$wb['monitor_services_offline_txt'] = 'Offline';
+$wb['monitor_serverstate_raidok_txt'] = 'RAID je ok';
+$wb['monitor_serverstate_raidresync_txt'] = 'RAID je u RESYNC modu';
+$wb['monitor_serverstate_raidfault_txt'] = 'Jedan RAID disk je neispravan. Zamjenite disk Å¡to prije';
+$wb['monitor_serverstate_raiderror_txt'] = 'RAID više ne radi';
+$wb['monitor_serverstate_raidunknown_txt'] = 'RAID stanje: ???';
+$wb['monitor_serverstate_servicesonline_txt'] = 'Svi servisi su aktivni';
+$wb['monitor_serverstate_servicesoffline_txt'] = 'Jedan ili više servisa su neaktivni';
+$wb['monitor_serverstate_servicesunknown_txt'] = 'Servisi: ???';
+$wb['monitor_serverstate_syslogok_txt'] = 'Sistemski log je OK.';
+$wb['monitor_serverstate_syslogwarning_txt'] = 'Ima upozorenja u sistemskom log-u';
+$wb['monitor_serverstate_syslogerror_txt'] = 'Ima grešaka u sistemskom log-u';
+$wb['monitor_serverstate_syslogunknown_txt'] = 'Sistemski log: ???';
+$wb['monitor_serverstate_updatesok_txt'] = 'Nema nadogradnji za sistem.';
+$wb['monitor_serverstate_updatesneeded_txt'] = 'Postoji nadogradnja za jednu ili više komponenti ';
+$wb['monitor_serverstate_updatesunknown_txt'] = 'Nadogradnja sistema: ???';
+$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter je ok';
+$wb['monitor_serverstate_beancounterinfo_txt'] = 'Postoje greške u beancounter-u';
+$wb['monitor_serverstate_beancounterwarning_txt'] = 'Postoji par greški u beancounter-u';
+$wb['monitor_serverstate_beancountercritical_txt'] = 'Postoji puno grešaka u beancounter-u';
+$wb['monitor_serverstate_beancountererror_txt'] = 'Postoji previše grešaka u beancounter-u';
+$wb['monitor_services_online_txt'] = 'Uključen';
+$wb['monitor_services_offline_txt'] = 'Isključen';
 $wb['monitor_services_web_txt'] = 'Web server:';
 $wb['monitor_services_ftp_txt'] = 'FTP server:';
 $wb['monitor_services_smtp_txt'] = 'SMTP server:';
@@ -129,18 +129,21 @@ $wb['monitor_services_pop_txt'] = 'POP3 server:';
 $wb['monitor_services_imap_txt'] = 'IMAP server:';
 $wb['monitor_services_mydns_txt'] = 'DNS server:';
 $wb['monitor_services_mysql_txt'] = 'mySQL server:';
-$wb['monitor_settings_datafromdate_txt'] = 'Data from: ';
+$wb['monitor_settings_datafromdate_txt'] = 'Podaci od: ';
 $wb['monitor_settings_datetimeformat_txt'] = 'd.m.Y. H:i';
-$wb['monitor_settings_refreshsq_txt'] = 'Refresh Sequence:';
+$wb['monitor_settings_refreshsq_txt'] = 'Osvježavanje:';
 $wb['monitor_settings_server_txt'] = 'Server';
 $wb['monitor_title_cpuinfo_txt'] = 'Procesor';
-$wb['monitor_title_updatestate_txt'] = 'Update Status';
+$wb['monitor_title_updatestate_txt'] = 'Stanje nadogradnje';
 $wb['monitor_title_mailq_txt'] = 'Mail Queue';
-$wb['monitor_title_raidstate_txt'] = 'RAID Status';
-$wb['monitor_title_rkhunterlog_txt'] = 'RKHunter Log';
-$wb['monitor_title_fail2ban_txt'] = 'Fail2Ban Log';
+$wb['monitor_title_raidstate_txt'] = 'Stanje RAID-a';
+$wb['monitor_title_rkhunterlog_txt'] = 'RKHunter log';
+$wb['monitor_title_fail2ban_txt'] = 'Fail2Ban log';
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
-$wb['monitor_updates_nosupport_txt'] = 'Your distribution is not supported for this monitoring';
-$wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
-$wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['monitor_updates_nosupport_txt'] = 'Ova distribucija nije podržana za ovaj nadzor';
+$wb['monitor_beancounter_nosupport_txt'] = 'Ovaj server nije OpenVz VE i nema beancounter informacije';
+$wb['monitor_title_iptables_txt'] = 'IPTables pravila';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/hr_datalog_list.lng b/interface/web/monitor/lib/lang/hr_datalog_list.lng
index 0fa52dfc55..e6e8f86529 100644
--- a/interface/web/monitor/lib/lang/hr_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/hr_datalog_list.lng
@@ -2,7 +2,7 @@
 $wb['list_head_txt'] = 'Stanje';
 $wb['tstamp_txt'] = 'Datum';
 $wb['server_id_txt'] = 'Server';
-$wb['dbtable_txt'] = 'DB tablica';
+$wb['dbtable_txt'] = 'Tablica u bazi';
 $wb['action_txt'] = 'Akcija';
 $wb['status_txt'] = 'Status';
 ?>
diff --git a/interface/web/monitor/lib/lang/hu.lng b/interface/web/monitor/lib/lang/hu.lng
index df713de9f6..b16d6fcd29 100644
--- a/interface/web/monitor/lib/lang/hu.lng
+++ b/interface/web/monitor/lib/lang/hu.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/id.lng b/interface/web/monitor/lib/lang/id.lng
index 013cc2cb59..e0871f3b14 100644
--- a/interface/web/monitor/lib/lang/id.lng
+++ b/interface/web/monitor/lib/lang/id.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'Ada terlalu banyak kegagalan
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'Server ini bukan OpenVz VE dan tidak memiliki informasi beancounter';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/it.lng b/interface/web/monitor/lib/lang/it.lng
index 2ed4ad2dbc..8c7b8be0d0 100644
--- a/interface/web/monitor/lib/lang/it.lng
+++ b/interface/web/monitor/lib/lang/it.lng
@@ -8,8 +8,8 @@ $wb['Server Load'] = 'Carico del server';
 $wb['Disk usage'] = 'Utilizzo dischi';
 $wb['Memory usage'] = 'Utilizzo memoria';
 $wb['no_data_serverload_txt'] = 'Dati riguardo il carico del server attualmente non disponibili. Riprova più tardi.';
-$wb['no_data_memusage_txt'] = 'Dati riguardo l`uso della memoria attualmente non disponibili. Riprova più tardi.';
-$wb['no_data_diskusage_txt'] = 'Dati riguardo l`uso dei dischi attualmente non disponibili. Riprova più tardi.';
+$wb['no_data_memusage_txt'] = 'Dati riguardo luso della memoria attualmente non disponibili. Riprova più tardi.';
+$wb['no_data_diskusage_txt'] = 'Dati riguardo luso dei dischi attualmente non disponibili. Riprova più tardi.';
 $wb['no_data_cpuinfo_txt'] = 'Dati riguardo la CPU attualmente non disponibili. Riprova più tardi.';
 $wb['no_data_services_txt'] = 'Dati riguardo i servizi attualmente non disponibili. Riprova più tardi.';
 $wb['no_logdata_txt'] = 'Log attualmente non disponibili. Riprova più tardi.';
@@ -17,10 +17,10 @@ $wb['Monitoring'] = 'Monitoraggio';
 $wb['Server to Monitor'] = 'Server da monitorare';
 $wb['Logfiles'] = 'File dei log';
 $wb['Status of services'] = 'Stato dei servizi';
-$wb['No Refresh'] = 'No Aggiornamento';
+$wb['No Refresh'] = 'Nessun aggiornamento';
 $wb['minutes'] = 'minuti';
 $wb['Show Overview'] = 'Mostra panoramica';
-$wb['System State (All Servers)'] = 'Stato del sistema (Tutti i server)';
+$wb['System State (All Servers)'] = 'Stato del sistema (tutti i server)';
 $wb['Hardware-Information'] = 'Informationi Hardware';
 $wb['Show CPU info'] = 'Mostra info CPU';
 $wb['Server State'] = 'Stato del server';
@@ -39,21 +39,21 @@ $wb['Show Clamav-Log'] = 'Mostra log Clamav';
 $wb['Show ISPConfig-Log'] = 'Mostra log ISPConfig';
 $wb['Show System-Log'] = 'Mostra log di sistema';
 $wb['Show RKHunter-Log'] = 'Mostra log RKHunter';
-$wb['Show Jobqueue'] = 'Mostra Jobqueue';
+$wb['Show Jobqueue'] = 'Mostra coda lavori';
 $wb['Show ISPC Cron-Log'] = 'Mostra log cron ISPC';
 $wb['no_data_updates_txt'] = 'No data about updates available at the moment. Please check again later.';
 $wb['no_data_raid_txt'] = 'No data about RAID available at the moment. Please check again later.';
 $wb['no_data_rkhunter_txt'] = 'No data about RKHunter available at the moment. Please check again later.';
 $wb['no_data_mailq_txt'] = 'No data Mailqueue available at the moment. Please check again later.';
-$wb['monitor_general_serverstate_txt'] = 'Server State';
-$wb['monitor_general_systemstate_txt'] = 'System State';
+$wb['monitor_general_serverstate_txt'] = 'Stato del server';
+$wb['monitor_general_systemstate_txt'] = 'Stato del sistema';
 $wb['monitor_diskusage_filesystem_txt'] = 'Filesystem';
-$wb['monitor_diskusage_type_txt'] = 'Type';
-$wb['monitor_diskusage_size_txt'] = 'Size';
-$wb['monitor_diskusage_used_txt'] = 'Used';
-$wb['monitor_diskusage_available_txt'] = 'Available';
+$wb['monitor_diskusage_type_txt'] = 'Tipo';
+$wb['monitor_diskusage_size_txt'] = 'Dimensione';
+$wb['monitor_diskusage_used_txt'] = 'Usati';
+$wb['monitor_diskusage_available_txt'] = 'Disponibili';
 $wb['monitor_diskusage_usage_txt'] = 'Use%';
-$wb['monitor_diskusage_mounted_txt'] = 'Mounted on';
+$wb['monitor_diskusage_mounted_txt'] = 'Punti di mount';
 $wb['monitor_logs_mail_txt'] = 'Mail - Log';
 $wb['monitor_logs_mailwarn_txt'] = 'Mail-Warn - Log';
 $wb['monitor_logs_mailerr_txt'] = 'Mail-Error - Log';
@@ -62,31 +62,31 @@ $wb['monitor_logs_ispccron_txt'] = 'ISPConfig Cron - Log';
 $wb['monitor_logs_freshclam_txt'] = 'Freshclam - Log';
 $wb['monitor_logs_clamav_txt'] = 'Clamav - Log';
 $wb['monitor_logs_ispc_txt'] = 'ISPConfig - Log';
-$wb['monitor_norkhunter_txt'] = 'RKHunter is not installed, so there is no log data';
+$wb['monitor_norkhunter_txt'] = 'RKHunter non è installato, non sono disponibili dati nel log ';
 $wb['monitor_serverstate_server_txt'] = 'Server';
-$wb['monitor_serverstate_state_txt'] = 'State';
-$wb['monitor_serverstate_unknown_txt'] = 'unknown';
+$wb['monitor_serverstate_state_txt'] = 'Stato';
+$wb['monitor_serverstate_unknown_txt'] = 'sconosciuto';
 $wb['monitor_serverstate_info_txt'] = 'info';
-$wb['monitor_serverstate_warning_txt'] = 'warning';
-$wb['monitor_serverstate_critical_txt'] = 'critical';
-$wb['monitor_serverstate_error_txt'] = 'error';
-$wb['monitor_serverstate_moreinfo_txt'] = 'More information...';
-$wb['monitor_serverstate_more_txt'] = 'More...';
-$wb['monitor_serverstate_fclamok_txt'] = 'Your Virus-protection is ok';
-$wb['monitor_serverstate_fclamoutdated_txt'] = 'Your Virus-protection is OUTDATED!';
-$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!';
+$wb['monitor_serverstate_warning_txt'] = 'attenzione';
+$wb['monitor_serverstate_critical_txt'] = 'critico';
+$wb['monitor_serverstate_error_txt'] = 'errore';
+$wb['monitor_serverstate_moreinfo_txt'] = 'Maggiori informazioni...';
+$wb['monitor_serverstate_more_txt'] = 'Segue...';
+$wb['monitor_serverstate_fclamok_txt'] = 'Protezione anti virus  ok';
+$wb['monitor_serverstate_fclamoutdated_txt'] = 'La vostra protezione anti virus è scaduta.';
+$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???';
 $wb['monitor_serverstate_hdok_txt'] = 'The state of your Hard-Disk space is ok';
-$wb['monitor_serverstate_hdgoingfull_txt'] = 'Your Hard-Disk space is going full';
-$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Your Hard-Disk is nearly full';
-$wb['monitor_serverstate_hdveryfull_txt'] = 'Your Hard-Disk is very full';
-$wb['monitor_serverstate_hdfull_txt'] = 'Your Hard-Disk has no more space left';
-$wb['monitor_serverstate_hdunknown_txt'] = 'Hard-Disk: ???';
+$wb['monitor_serverstate_hdgoingfull_txt'] = 'Il vostro disco rigido si sta saturando';
+$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Il vostro disco rigido è quasi saturo';
+$wb['monitor_serverstate_hdveryfull_txt'] = 'Il vostro disco rigido è saturo';
+$wb['monitor_serverstate_hdfull_txt'] = 'Il vostro disco rigido non ha più spazio';
+$wb['monitor_serverstate_hdunknown_txt'] = 'Disco rigido: ???';
 $wb['monitor_serverstate_listok_txt'] = 'ok';
 $wb['monitor_serverstate_listinfo_txt'] = 'info';
-$wb['monitor_serverstate_listwarning_txt'] = 'warning';
-$wb['monitor_serverstate_listcritical_txt'] = 'critical';
-$wb['monitor_serverstate_listerror_txt'] = 'error';
-$wb['monitor_serverstate_listunknown_txt'] = 'unknown';
+$wb['monitor_serverstate_listwarning_txt'] = 'attenzione';
+$wb['monitor_serverstate_listcritical_txt'] = 'critico';
+$wb['monitor_serverstate_listerror_txt'] = 'errore';
+$wb['monitor_serverstate_listunknown_txt'] = 'sconosciuto';
 $wb['monitor_serverstate_loadok_txt'] = 'Your Server load is ok';
 $wb['monitor_serverstate_loadheavy_txt'] = 'Your Server in under heavy load';
 $wb['monitor_serverstate_loadhigh_txt'] = 'Your Server in under high load';
@@ -124,7 +124,7 @@ $wb['monitor_services_imap_txt'] = 'IMAP-Server:';
 $wb['monitor_services_mydns_txt'] = 'DNS-Server:';
 $wb['monitor_services_mysql_txt'] = 'mySQL-Server:';
 $wb['monitor_settings_datafromdate_txt'] = 'Data from: ';
-$wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i';
+$wb['monitor_settings_datetimeformat_txt'] = 'd-m-Y H:i';
 $wb['monitor_settings_refreshsq_txt'] = 'Refresh sequence:';
 $wb['monitor_settings_server_txt'] = 'Server';
 $wb['monitor_title_cpuinfo_txt'] = 'CPU Info';
@@ -132,15 +132,18 @@ $wb['monitor_title_updatestate_txt'] = 'Update State';
 $wb['monitor_title_mailq_txt'] = 'Mailqueue';
 $wb['monitor_title_raidstate_txt'] = 'RAID-State';
 $wb['monitor_title_rkhunterlog_txt'] = 'RKHunter-Log';
-$wb['monitor_updates_nosupport_txt'] = 'Your distribution is not supported for this monitoring';
-$wb['monitor_title_fail2ban_txt'] = 'Fail2Ban Log';
+$wb['monitor_updates_nosupport_txt'] = 'Distribuzione in uso non supportata per il monitoraggio';
+$wb['monitor_title_fail2ban_txt'] = 'Mostra log fail2Ban';
 $wb['monitor_nosupportedraid1_txt'] = 'At the moment, we support mdadm or mpt-status for monitoring the RAID.<br>We cant find any of them at your server.<br><br>This means we can not support your RAID yet.';
 $wb['monitor_serverstate_beancounterok_txt'] = 'The beancounter is ok';
 $wb['monitor_serverstate_beancounterinfo_txt'] = 'There are vew failure in the beancounter';
 $wb['monitor_serverstate_beancounterwarning_txt'] = 'There are some failure in the beancounter';
 $wb['monitor_serverstate_beancountercritical_txt'] = 'There are many failure in the beancounter';
 $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in the beancounter';
-$wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
-$wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
+$wb['monitor_title_beancounter_txt'] = 'Mostra risorse OpenVz VE';
+$wb['monitor_beancounter_nosupport_txt'] = 'Questo server non è una OpenVz VE per cui non ci sono informazioni disponibili.';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
 ?>
diff --git a/interface/web/monitor/lib/lang/it_datalog_list.lng b/interface/web/monitor/lib/lang/it_datalog_list.lng
index 740dff161e..512a4b9355 100644
--- a/interface/web/monitor/lib/lang/it_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/it_datalog_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Jobqueue';
+$wb['list_head_txt'] = 'Coda lavori';
 $wb['tstamp_txt'] = 'Data';
 $wb['server_id_txt'] = 'Server';
 $wb['dbtable_txt'] = 'Tabella DB';
diff --git a/interface/web/monitor/lib/lang/it_syslog_list.lng b/interface/web/monitor/lib/lang/it_syslog_list.lng
index 3b372ec0f8..65ff6fc7c5 100644
--- a/interface/web/monitor/lib/lang/it_syslog_list.lng
+++ b/interface/web/monitor/lib/lang/it_syslog_list.lng
@@ -2,6 +2,6 @@
 $wb['list_head_txt'] = 'Log ISPConfig';
 $wb['tstamp_txt'] = 'Data';
 $wb['server_id_txt'] = 'Server';
-$wb['loglevel_txt'] = 'Livello Log';
+$wb['loglevel_txt'] = 'Livello log';
 $wb['message_txt'] = 'Messaggio';
 ?>
diff --git a/interface/web/monitor/lib/lang/ja.lng b/interface/web/monitor/lib/lang/ja.lng
index 8835dabe1a..0d3340755b 100644
--- a/interface/web/monitor/lib/lang/ja.lng
+++ b/interface/web/monitor/lib/lang/ja.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/nl.lng b/interface/web/monitor/lib/lang/nl.lng
index 14d9130158..e4bfb03f28 100644
--- a/interface/web/monitor/lib/lang/nl.lng
+++ b/interface/web/monitor/lib/lang/nl.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'In de beancounter bevinden zi
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'Deze server is geen OpenVz VE en heeft daarom geen beancounter informatie';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng
index 558d51911d..d5c74d7640 100644
--- a/interface/web/monitor/lib/lang/pl.lng
+++ b/interface/web/monitor/lib/lang/pl.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'Jest za dużo problemów w be
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'Ten serwer nie jest serwerem OpenVz VE i nie posiada informacji o beancounterach';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/pt.lng b/interface/web/monitor/lib/lang/pt.lng
index 54639f7328..08d6d59405 100644
--- a/interface/web/monitor/lib/lang/pt.lng
+++ b/interface/web/monitor/lib/lang/pt.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/ro.lng b/interface/web/monitor/lib/lang/ro.lng
index 0fc3a20799..859c4166e4 100644
--- a/interface/web/monitor/lib/lang/ro.lng
+++ b/interface/web/monitor/lib/lang/ro.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/ru.lng b/interface/web/monitor/lib/lang/ru.lng
index 5ae5d3a2a9..c1b310f89f 100644
--- a/interface/web/monitor/lib/lang/ru.lng
+++ b/interface/web/monitor/lib/lang/ru.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng
index 4be4dbc99f..5385f76d42 100644
--- a/interface/web/monitor/lib/lang/se.lng
+++ b/interface/web/monitor/lib/lang/se.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/sk.lng b/interface/web/monitor/lib/lang/sk.lng
index 39a575d7e1..9fed474a3e 100644
--- a/interface/web/monitor/lib/lang/sk.lng
+++ b/interface/web/monitor/lib/lang/sk.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng
index 508b729cb2..aaea02255f 100644
--- a/interface/web/monitor/lib/lang/tr.lng
+++ b/interface/web/monitor/lib/lang/tr.lng
@@ -143,4 +143,7 @@ $wb['monitor_serverstate_beancountererror_txt'] = 'There are too much failure in
 $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
 $wb['monitor_beancounter_nosupport_txt'] = 'This server is not a OpenVz VE and has no beancounter information';
 $wb['monitor_title_iptables_txt'] = 'IPTables Rules';
+$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
+$wb['Show IPTables'] = 'Show IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
 ?>
diff --git a/interface/web/sites/ajax_get_ip.php b/interface/web/sites/ajax_get_ip.php
index 8b2ee099c6..faf775302c 100644
--- a/interface/web/sites/ajax_get_ip.php
+++ b/interface/web/sites/ajax_get_ip.php
@@ -38,7 +38,7 @@ $server_id = intval($_GET["server_id"]);
 $client_group_id = intval($_GET["client_group_id"]);
 $ip_type = $app->db->quote($_GET['ip_type']);
 
-if($_SESSION["s"]["user"]["typ"] == 'admin') {
+if($_SESSION["s"]["user"]["typ"] == 'admin' or $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
 
 	$sql = "SELECT ip_address FROM server_ip WHERE ip_type = '$ip_type' AND server_id = $server_id";
 	$ips = $app->db->queryAllRecords($sql);
diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index f59db12cf6..e06694398d 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -97,10 +97,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
@@ -135,10 +135,10 @@ class page_action extends tform_actions {
 			$sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/sites/form/webdav_user.tform.php b/interface/web/sites/form/webdav_user.tform.php
index e378a7f4d1..5d423b652e 100644
--- a/interface/web/sites/form/webdav_user.tform.php
+++ b/interface/web/sites/form/webdav_user.tform.php
@@ -73,10 +73,9 @@ $form["tabs"]['webdav'] = array (
 			'datatype'	=> 'INTEGER',
 			'formtype'	=> 'SELECT',
 			'default'	=> '',
-			'datasource'	=> array ( 	'type'	=> 'SQL',
-										'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain",
-										'keyfield'=> 'domain_id',
-										'valuefield'=> 'domain'
+			'datasource'	=> array ( 	'type'	=> 'CUSTOM',
+										'class'=> 'custom_datasource',
+										'function'=> 'webdav_domains'
 									 ),
 			'value'		=> ''
 		),
diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng
index 8049190211..2e9bdbd401 100644
--- a/interface/web/sites/lib/lang/ar_shell_user.lng
+++ b/interface/web/sites/lib/lang/ar_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_shell_user.lng b/interface/web/sites/lib/lang/bg_shell_user.lng
index 1c20ee56d4..741a7b3d79 100644
--- a/interface/web/sites/lib/lang/bg_shell_user.lng
+++ b/interface/web/sites/lib/lang/bg_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Достигнат е максималният р
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng
index a5fd5239f2..ea77c5d6da 100644
--- a/interface/web/sites/lib/lang/br_shell_user.lng
+++ b/interface/web/sites/lib/lang/br_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'O número máximo de usuários shell para sua con
 $wb['parent_domain_id_error_empty'] = 'Nenhum website selecionado.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng
index 8e37fead1f..67d13e4a83 100644
--- a/interface/web/sites/lib/lang/cz_shell_user.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Dosažen max. počet shell uživatelů.';
 $wb['parent_domain_id_error_empty'] = 'Nevybrána žádná webová stránka.';
 $wb['puser_txt'] = 'Web: Uživatelské jméno';
 $wb['pgroup_txt'] = 'Web: Skupina';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/de_shell_user.lng b/interface/web/sites/lib/lang/de_shell_user.lng
index 4f0b2ec24f..c2373ad83e 100644
--- a/interface/web/sites/lib/lang/de_shell_user.lng
+++ b/interface/web/sites/lib/lang/de_shell_user.lng
@@ -19,4 +19,5 @@ $wb['password_strength_txt'] = 'Passwortkomplexität';
 $wb['parent_domain_id_error_empty'] = 'Keine Website ausgewählt.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (f&uuml;r key-basierte Logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/el_shell_user.lng b/interface/web/sites/lib/lang/el_shell_user.lng
index c47256046a..8b126393f5 100644
--- a/interface/web/sites/lib/lang/el_shell_user.lng
+++ b/interface/web/sites/lib/lang/el_shell_user.lng
@@ -19,4 +19,5 @@ $wb['uid_error_empty'] = 'Το GID δεν έχει οριστεί';
 $wb['directory_error_empty'] = 'Ο φάκελος δεν έχει οριστεί';
 $wb['limit_shell_user_txt'] = 'Φτάσατε το μέγιστο πλήθος τον λογαριασμών Shell';
 $wb['parent_domain_id_error_empty'] = 'Δεν επιλέχθηκε website';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng
index f98f3f9806..e05fd258e4 100644
--- a/interface/web/sites/lib/lang/en_shell_user.lng
+++ b/interface/web/sites/lib/lang/en_shell_user.lng
@@ -20,4 +20,5 @@ $wb["uid_error_empty"] = 'GID empty.';
 $wb["directory_error_empty"] = 'Directory empty.';
 $wb["limit_shell_user_txt"] = 'The max number of shell users is reached.';
 $wb["parent_domain_id_error_empty"] = 'No website selected.';
+$wb["ssh_rsa_txt"] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/es_shell_user.lng b/interface/web/sites/lib/lang/es_shell_user.lng
index 6ab1e5b130..251c783ac0 100644
--- a/interface/web/sites/lib/lang/es_shell_user.lng
+++ b/interface/web/sites/lib/lang/es_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Se ha alcanzado el número máximo de usuarios de
 $wb['parent_domain_id_error_empty'] = 'No se ha seleccionado un sitio web.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng
index 5ae9df8112..769c0dd605 100755
--- a/interface/web/sites/lib/lang/fi_shell_user.lng
+++ b/interface/web/sites/lib/lang/fi_shell_user.lng
@@ -19,4 +19,5 @@ $wb['password_strength_txt'] = 'Salasanan vahvuus';
 $wb['parent_domain_id_error_empty'] = 'Ei www-sivua valittuna.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng
index 55cd7f4be7..e18722415e 100644
--- a/interface/web/sites/lib/lang/fr_shell_user.lng
+++ b/interface/web/sites/lib/lang/fr_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Le nombre maximum dutilisateurs shell a été att
 $wb['parent_domain_id_error_empty'] = 'Aucun site web sélectionné.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/hr.lng b/interface/web/sites/lib/lang/hr.lng
index 4d0cd9dd76..553cc45dc3 100644
--- a/interface/web/sites/lib/lang/hr.lng
+++ b/interface/web/sites/lib/lang/hr.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['Database'] = 'Database';
-$wb['Options'] = 'Options';
-$wb['Shell User'] = 'Shell User';
-$wb['Domain'] = 'Domain';
-$wb['Website'] = 'Website';
-$wb['Redirect'] = 'Redirect';
+$wb['Database'] = 'Baza';
+$wb['Options'] = 'Opcije';
+$wb['Shell User'] = 'Shell korisnik';
+$wb['Domain'] = 'Domena';
+$wb['Website'] = 'Web stranica';
+$wb['Redirect'] = 'Preusmjeravanje';
 $wb['SSL'] = 'SSL';
-$wb['Subdomain'] = 'Subdomain for website';
-$wb['Sites'] = 'Sites';
-$wb['Aliasdomain'] = 'Aliasdomain for website';
-$wb['FTP-User'] = 'FTP-User';
+$wb['Subdomain'] = 'Pod domena';
+$wb['Sites'] = 'Web stranice';
+$wb['Aliasdomain'] = 'Alias za web stranicu';
+$wb['FTP-User'] = 'FTP korisnik';
 $wb['FTP'] = 'FTP';
-$wb['Shell-User'] = 'Shell-User';
+$wb['Shell-User'] = 'Shell korisnik';
 $wb['Shell'] = 'Shell';
-$wb['Webdav-User'] = 'Webdav User';
+$wb['Webdav-User'] = 'Webdav korisnik';
 $wb['Webdav'] = 'Webdav';
-$wb['Websites'] = 'Websites';
-$wb['Stats'] = 'Statistics';
+$wb['Websites'] = 'Web stranice';
+$wb['Stats'] = 'Statistike';
 $wb['Cron'] = 'Cron';
-$wb['Cron Jobs'] = 'Cron Jobs';
-$wb['Statistics'] = 'Statistics';
-$wb['Web traffic'] = 'Web Traffic';
-$wb['Website quota (Harddisk)'] = 'Website quota (Harddisk)';
+$wb['Cron Jobs'] = 'Cron zadaci';
+$wb['Statistics'] = 'Statistike';
+$wb['Web traffic'] = 'Promet web stranice';
+$wb['Website quota (Harddisk)'] = 'Kvota web stranice (tvrdi disk)';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_database_admin_list.lng b/interface/web/sites/lib/lang/hr_database_admin_list.lng
index 3f05f65e62..aee31601c6 100644
--- a/interface/web/sites/lib/lang/hr_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/hr_database_admin_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Database';
-$wb['active_txt'] = 'Active';
-$wb['remote_access_txt'] = 'Remote Access';
+$wb['list_head_txt'] = 'Baza';
+$wb['active_txt'] = 'Aktivno';
+$wb['remote_access_txt'] = 'Udaljeni pristup';
 $wb['server_id_txt'] = 'Server';
-$wb['database_user_txt'] = 'Database user';
-$wb['database_name_txt'] = 'Database name';
-$wb['add_new_record_txt'] = 'Add new Database';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['database_user_txt'] = 'Korisnik baze';
+$wb['database_name_txt'] = 'Naziv baze';
+$wb['add_new_record_txt'] = 'Dodaj bazu';
+$wb['sys_groupid_txt'] = 'Klijent';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng
index 6e2fca5ae7..c4d822d2d6 100644
--- a/interface/web/sites/lib/lang/hr_shell_user.lng
+++ b/interface/web/sites/lib/lang/hr_shell_user.lng
@@ -19,4 +19,5 @@ $wb['uid_error_empty'] = 'GID empty.';
 $wb['directory_error_empty'] = 'Directory empty.';
 $wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_shell_user.lng b/interface/web/sites/lib/lang/hu_shell_user.lng
index c3528b8091..4b09074b44 100644
--- a/interface/web/sites/lib/lang/hu_shell_user.lng
+++ b/interface/web/sites/lib/lang/hu_shell_user.lng
@@ -19,4 +19,5 @@ $wb['password_strength_txt'] = 'Jelszó erőssége';
 $wb['parent_domain_id_error_empty'] = 'Nincs webhely kiválasztva.';
 $wb['puser_txt'] = 'Web Felhasználónév';
 $wb['pgroup_txt'] = 'Web Csoportnév';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/id_shell_user.lng b/interface/web/sites/lib/lang/id_shell_user.lng
index 72396ac53d..8f34b63737 100644
--- a/interface/web/sites/lib/lang/id_shell_user.lng
+++ b/interface/web/sites/lib/lang/id_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Jumlah maksimum pengguna shell telah tercapai.';
 $wb['parent_domain_id_error_empty'] = 'Tak ada situs web yang dipilih.';
 $wb['puser_txt'] = 'Nama Pengguna Web';
 $wb['pgroup_txt'] = 'Grup Web';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/it.lng b/interface/web/sites/lib/lang/it.lng
index 7bd69495e6..1c6572957a 100644
--- a/interface/web/sites/lib/lang/it.lng
+++ b/interface/web/sites/lib/lang/it.lng
@@ -2,24 +2,24 @@
 $wb['Database'] = 'Database';
 $wb['Options'] = 'Opzioni';
 $wb['Shell User'] = 'Utente Shell';
-$wb['Domain'] = 'Domini';
+$wb['Domain'] = 'Dominio';
 $wb['Redirect'] = 'Redirect';
 $wb['SSL'] = 'SSL';
 $wb['Subdomain'] = 'Sottodomini';
-$wb['Sites'] = 'Sites';
-$wb['Aliasdomain'] = 'Alias domini';
-$wb['FTP-User'] = 'Utenti FTP';
+$wb['Sites'] = 'Siti';
+$wb['Aliasdomain'] = 'Alias dominio';
+$wb['FTP-User'] = 'Utente FTP';
 $wb['FTP'] = 'FTP';
-$wb['Shell-User'] = 'Utenti Shell';
+$wb['Shell-User'] = 'Utente Shell';
 $wb['Shell'] = 'Shell';
 $wb['Websites'] = 'Siti';
-$wb['Stats'] = 'Statistics';
-$wb['Website'] = 'Website';
+$wb['Stats'] = 'Statistiche';
+$wb['Website'] = 'Sito web';
 $wb['Cron'] = 'Cron';
 $wb['Cron Jobs'] = 'Cron Jobs';
-$wb['Statistics'] = 'Statistics';
-$wb['Web traffic'] = 'Web Traffic';
-$wb['Webdav-User'] = 'Webdav User';
+$wb['Statistics'] = 'Statistiche';
+$wb['Web traffic'] = 'Traffico web';
+$wb['Webdav-User'] = 'Utente Webdav';
 $wb['Webdav'] = 'Webdav';
-$wb['Website quota (Harddisk)'] = 'Website quota (Harddisk)';
+$wb['Website quota (Harddisk)'] = 'Quota sito web (Harddisk)';
 ?>
diff --git a/interface/web/sites/lib/lang/it_database.lng b/interface/web/sites/lib/lang/it_database.lng
index 8921c11733..62a452d4f7 100644
--- a/interface/web/sites/lib/lang/it_database.lng
+++ b/interface/web/sites/lib/lang/it_database.lng
@@ -5,11 +5,11 @@ $wb['database_name_txt'] = 'Nome Database';
 $wb['database_user_txt'] = 'Utente Database';
 $wb['database_password_txt'] = 'Password Database';
 $wb['password_strength_txt'] = 'Sicurezza della Password';
-$wb['database_charset_txt'] = 'Database charset';
+$wb['database_charset_txt'] = 'Charset database';
 $wb['remote_access_txt'] = 'Accesso remoto';
 $wb['client_txt'] = 'Cliente';
 $wb['active_txt'] = 'Attivo';
-$wb['database_name_error_empty'] = 'Database name is empty.';
+$wb['database_name_error_empty'] = 'Il nome database è vuoto.';
 $wb['database_name_error_unique'] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domain name to the database name.';
 $wb['database_name_error_regex'] = 'Invalid database name. The database name may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
 $wb['database_user_error_empty'] = 'Database user is empty.';
diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng
index 8049190211..2e9bdbd401 100644
--- a/interface/web/sites/lib/lang/it_shell_user.lng
+++ b/interface/web/sites/lib/lang/it_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/it_user_quota_stats_list.lng b/interface/web/sites/lib/lang/it_user_quota_stats_list.lng
index 716760b172..adfcb4f7c6 100644
--- a/interface/web/sites/lib/lang/it_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/it_user_quota_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['list_head_txt'] = 'Website harddisk quota';
-$wb['domain_txt'] = 'Domain / Website';
-$wb['system_user_txt'] = 'Linux user';
-$wb['used_txt'] = 'Used space';
-$wb['hard_txt'] = 'Hard limit';
-$wb['soft_txt'] = 'Soft limit';
+$wb['domain_txt'] = 'Dominio / Sito web';
+$wb['system_user_txt'] = 'Utente linux';
+$wb['used_txt'] = 'Spazio usato';
+$wb['hard_txt'] = 'Limite rigido';
+$wb['soft_txt'] = 'Limite lasco';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng
index 6749cb4fad..c6e68ace89 100644
--- a/interface/web/sites/lib/lang/it_web_domain.lng
+++ b/interface/web/sites/lib/lang/it_web_domain.lng
@@ -24,7 +24,7 @@ $wb['hd_quota_txt'] = 'Quota Harddisk';
 $wb['traffic_quota_txt'] = 'Quota Traffico';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Erorri personalizzati';
+$wb['errordocs_txt'] = 'Errori personalizzati';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
@@ -65,6 +65,7 @@ $wb['stats_user_txt'] = 'Webstatistics username';
 $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Custom php.ini settings';
 $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['ipv6_address_txt'] = 'IPv6-Address';
 $wb['none_txt'] = 'None';
 $wb['disabled_txt'] = 'Disabled';
 $wb['no_redirect_txt'] = 'No redirect';
@@ -72,7 +73,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
diff --git a/interface/web/sites/lib/lang/ja_shell_user.lng b/interface/web/sites/lib/lang/ja_shell_user.lng
index 6e59be9697..61ccb10b51 100644
--- a/interface/web/sites/lib/lang/ja_shell_user.lng
+++ b/interface/web/sites/lib/lang/ja_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Shellユーザーが最大数に達しました
 $wb['parent_domain_id_error_empty'] = 'ウェブサイトを選択してください。';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_shell_user.lng b/interface/web/sites/lib/lang/nl_shell_user.lng
index f60e6354cc..8aef6655dd 100644
--- a/interface/web/sites/lib/lang/nl_shell_user.lng
+++ b/interface/web/sites/lib/lang/nl_shell_user.lng
@@ -19,4 +19,5 @@ $wb['uid_error_empty'] = 'GID is niet ingvuld.';
 $wb['directory_error_empty'] = 'Directory is niet ingvuld.';
 $wb['limit_shell_user_txt'] = 'Het max. aantal shell-gebruikers is bereikt.';
 $wb['parent_domain_id_error_empty'] = 'Geen website geselecteerd.';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_shell_user.lng b/interface/web/sites/lib/lang/pl_shell_user.lng
index 031a83a707..0285428a3c 100644
--- a/interface/web/sites/lib/lang/pl_shell_user.lng
+++ b/interface/web/sites/lib/lang/pl_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Maksymalna liczba użytkowników shell została p
 $wb['parent_domain_id_error_empty'] = 'Nie wybrano żadnej strony www.';
 $wb['puser_txt'] = 'Nazwa użytkownika strony www';
 $wb['pgroup_txt'] = 'Nazwa grupy strony www';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_shell_user.lng b/interface/web/sites/lib/lang/pt_shell_user.lng
index 3bdeda638f..223f65ad16 100644
--- a/interface/web/sites/lib/lang/pt_shell_user.lng
+++ b/interface/web/sites/lib/lang/pt_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'O número máximo de utilizadors shell para a con
 $wb['parent_domain_id_error_empty'] = 'Nenhum website seleccionado.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_shell_user.lng b/interface/web/sites/lib/lang/ro_shell_user.lng
index 2e0cec4eb5..20c9a04672 100644
--- a/interface/web/sites/lib/lang/ro_shell_user.lng
+++ b/interface/web/sites/lib/lang/ro_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Numarul maxim de Shell-uri a fost atins';
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_shell_user.lng b/interface/web/sites/lib/lang/ru_shell_user.lng
index 38289567f8..586d9babbf 100644
--- a/interface/web/sites/lib/lang/ru_shell_user.lng
+++ b/interface/web/sites/lib/lang/ru_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Достигнуто допустимое кол
 $wb['parent_domain_id_error_empty'] = 'Web-сайт не выбран';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng
index 8049190211..2e9bdbd401 100644
--- a/interface/web/sites/lib/lang/se_shell_user.lng
+++ b/interface/web/sites/lib/lang/se_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'The max number of shell users is reached.';
 $wb['parent_domain_id_error_empty'] = 'No website selected.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_shell_user.lng b/interface/web/sites/lib/lang/sk_shell_user.lng
index 80d1386a9d..7c56b7e00e 100644
--- a/interface/web/sites/lib/lang/sk_shell_user.lng
+++ b/interface/web/sites/lib/lang/sk_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Maximálny počet shell Užívateľov je dosiahnu
 $wb['parent_domain_id_error_empty'] = 'Žiadna zvolená webstránka.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng
index 2f65479a1b..50d98fd62d 100644
--- a/interface/web/sites/lib/lang/tr_shell_user.lng
+++ b/interface/web/sites/lib/lang/tr_shell_user.lng
@@ -19,4 +19,5 @@ $wb['limit_shell_user_txt'] = 'Max. Shell kullanıcısı limitine ulaşıldı.';
 $wb['parent_domain_id_error_empty'] = 'Seçili websitesi yok.';
 $wb['puser_txt'] = 'Web Username';
 $wb['pgroup_txt'] = 'Web Group';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
 ?>
diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php
index cf4a585a97..bb93bf2222 100644
--- a/interface/web/sites/shell_user_edit.php
+++ b/interface/web/sites/shell_user_edit.php
@@ -112,6 +112,8 @@ class page_action extends tform_actions {
 		if(isset($this->dataRecord['username']) && trim($this->dataRecord['username']) == '') $app->tform->errorMessage .= $app->tform->lng('username_error_empty').'<br />';
 		if(isset($this->dataRecord['username']) && empty($this->dataRecord['parent_domain_id'])) $app->tform->errorMessage .= $app->tform->lng('parent_domain_id_error_empty').'<br />';
 		
+		if(isset($this->dataRecord['ssh_rsa'])) $this->dataRecord['ssh_rsa'] = trim($this->dataRecord['ssh_rsa']);
+		
 		parent::onSubmit();
 	}
 	
diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm
index 45bdcc4087..3924d39e71 100644
--- a/interface/web/sites/templates/shell_user_edit.htm
+++ b/interface/web/sites/templates/shell_user_edit.htm
@@ -44,8 +44,8 @@
         <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity">&nbsp;MB</p>
 			</div>
 	<div class="ctrlHolder">
-      		<label for="ssh_rsa">ssh_rsa</label>
-        	<input name="ssh_rsa" id="ssh_rsa" value="" maxlength="600" type="text" class="textInput" />
+      		<label for="ssh_rsa">{tmpl_var name='ssh_rsa_txt'}</label>
+			<textarea name="ssh_rsa" id="ssh_rsa" rows="10" cols="30">{tmpl_var name='ssh_rsa'}</textarea>
 			</div>
       <div class="ctrlHolder">
 				<p class="label">{tmpl_var name='active_txt'}</p>
diff --git a/interface/web/sites/templates/web_aliasdomain_edit.htm b/interface/web/sites/templates/web_aliasdomain_edit.htm
index 3f3b38d21b..e4f5cd192e 100644
--- a/interface/web/sites/templates/web_aliasdomain_edit.htm
+++ b/interface/web/sites/templates/web_aliasdomain_edit.htm
@@ -55,14 +55,19 @@
 
 </div>
 <script language="JavaScript" type="text/javascript">
-		var webId = jQuery('input[name="id"]').val();
+		var webId = jQuery('#parent_domain_id').val();
 		var serverId;
 		getServerId(webId);
-		adjustForm(serverId);
+		
+		jQuery('#parent_domain_id').change(function(){
+			webId = $(this).val();
+			getServerId(webId);
+		});
 		
 		function getServerId(webId){
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
 				serverId = data.serverid;
+				adjustForm(serverId);
 			});
 		}
 		
@@ -73,12 +78,23 @@
 					jQuery('#redirect_type option[value="R"]').hide();
 					jQuery('#redirect_type option[value="L"]').hide();
 					jQuery('#redirect_type option[value="R,L"]').hide();
+					
+					jQuery('#redirect_type option[value="last"]').show();
+					jQuery('#redirect_type option[value="break"]').show();
+					jQuery('#redirect_type option[value="redirect"]').show();
+					jQuery('#redirect_type option[value="permanent"]').show();
+					
 					if(selected != "no" && selected != "" && selected != "last"  && selected != "break"  && selected != "redirect"  && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				} else {
 					jQuery('#redirect_type option[value="last"]').hide();
 					jQuery('#redirect_type option[value="break"]').hide();
 					jQuery('#redirect_type option[value="redirect"]').hide();
 					jQuery('#redirect_type option[value="permanent"]').hide();
+					
+					jQuery('#redirect_type option[value="R"]').show();
+					jQuery('#redirect_type option[value="L"]').show();
+					jQuery('#redirect_type option[value="R,L"]').show();
+					
 					if(selected != "no" && selected != "" && selected != "R"  && selected != "L"  && selected != "R,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				}
 			});
diff --git a/interface/web/sites/templates/web_domain_redirect.htm b/interface/web/sites/templates/web_domain_redirect.htm
index 635a44d29b..d3d8637c2a 100644
--- a/interface/web/sites/templates/web_domain_redirect.htm
+++ b/interface/web/sites/templates/web_domain_redirect.htm
@@ -36,11 +36,11 @@
 		var webId = jQuery('input[name="id"]').val();
 		var serverId;
 		getServerId(webId);
-		adjustForm(serverId);
 		
 		function getServerId(webId){
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
 				serverId = data.serverid;
+				adjustForm(serverId);
 			});
 		}
 		
diff --git a/interface/web/sites/templates/web_subdomain_edit.htm b/interface/web/sites/templates/web_subdomain_edit.htm
index c9f6a94b27..f25cc6e068 100644
--- a/interface/web/sites/templates/web_subdomain_edit.htm
+++ b/interface/web/sites/templates/web_subdomain_edit.htm
@@ -41,14 +41,20 @@
   
 </div>
 <script language="JavaScript" type="text/javascript">
-		var webId = jQuery('input[name="id"]').val();
+		//var webId = jQuery('input[name="id"]').val();
+		var webId = jQuery('#parent_domain_id').val();
 		var serverId;
 		getServerId(webId);
-		adjustForm(serverId);
+		
+		jQuery('#parent_domain_id').change(function(){
+			webId = $(this).val();
+			getServerId(webId);
+		});
 		
 		function getServerId(webId){
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
 				serverId = data.serverid;
+				adjustForm(serverId);
 			});
 		}
 		
@@ -59,12 +65,23 @@
 					jQuery('#redirect_type option[value="R"]').hide();
 					jQuery('#redirect_type option[value="L"]').hide();
 					jQuery('#redirect_type option[value="R,L"]').hide();
+					
+					jQuery('#redirect_type option[value="last"]').show();
+					jQuery('#redirect_type option[value="break"]').show();
+					jQuery('#redirect_type option[value="redirect"]').show();
+					jQuery('#redirect_type option[value="permanent"]').show();
+					
 					if(selected != "no" && selected != "" && selected != "last"  && selected != "break"  && selected != "redirect"  && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				} else {
 					jQuery('#redirect_type option[value="last"]').hide();
 					jQuery('#redirect_type option[value="break"]').hide();
 					jQuery('#redirect_type option[value="redirect"]').hide();
 					jQuery('#redirect_type option[value="permanent"]').hide();
+					
+					jQuery('#redirect_type option[value="R"]').show();
+					jQuery('#redirect_type option[value="L"]').show();
+					jQuery('#redirect_type option[value="R,L"]').show();
+					
 					if(selected != "no" && selected != "" && selected != "R"  && selected != "L"  && selected != "R,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				}
 			});
diff --git a/interface/web/sites/web_domain_del.php b/interface/web/sites/web_domain_del.php
index e5614cf27c..a69923f85d 100644
--- a/interface/web/sites/web_domain_del.php
+++ b/interface/web/sites/web_domain_del.php
@@ -55,29 +55,52 @@ class page_action extends tform_actions {
 		
 		if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission'));
 		
-		// Delete all records that belog to this zone.
+		//* Delete all records that belog to this zone.
 		$records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE parent_domain_id = '".intval($this->id)."' AND type != 'vhost'");
 		foreach($records as $rec) {
 			$app->db->datalogDelete('web_domain','domain_id',$rec['domain_id']);
 		}
 		
-		// Delete all records that belog to this zone.
+		//* Delete all records that belog to this zone.
 		$records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = '".intval($this->id)."'");
 		foreach($records as $rec) {
 			$app->db->datalogDelete('ftp_user','ftp_user_id',$rec['ftp_user_id']);
 		}
 		
-		// Delete all records that belog to this zone.
+		//* Delete all records that belog to this web.
 		$records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = '".intval($this->id)."'");
 		foreach($records as $rec) {
 			$app->db->datalogDelete('shell_user','shell_user_id',$rec['shell_user_id']);
 		}
         
-        // Delete all records that belog to this zone.
+        //* Delete all records that belog to this web.
         $records = $app->db->queryAllRecords("SELECT id FROM cron WHERE parent_domain_id = '".intval($this->id)."'");
         foreach($records as $rec) {
             $app->db->datalogDelete('cron','id',$rec['id']);
         }
+		
+		//* Delete all records that belog to this web.
+        $records = $app->db->queryAllRecords("SELECT id FROM cron WHERE parent_domain_id = '".intval($this->id)."'");
+        foreach($records as $rec) {
+            $app->db->datalogDelete('cron','id',$rec['id']);
+        }
+		
+		//* Delete all records that belog to this web
+        $records = $app->db->queryAllRecords("SELECT webdav_user_id FROM webdav_user WHERE parent_domain_id = '".intval($this->id)."'");
+        foreach($records as $rec) {
+            $app->db->datalogDelete('webdav_user','webdav_user_id',$rec['webdav_user_id']);
+        }
+		
+		//* Delete all web folders
+        $records = $app->db->queryAllRecords("SELECT web_folder_id FROM web_folder WHERE parent_domain_id = '".intval($this->id)."'");
+        foreach($records as $rec) {
+            //* Delete all web folder users
+			$records2 = $app->db->queryAllRecords("SELECT web_folder_user_id FROM web_folder_user WHERE web_folder_id = '".$rec['web_folder_id']."'");
+			foreach($records2 as $rec2) {
+				$app->db->datalogDelete('web_folder_user','web_folder_user_id',$rec2['web_folder_user_id']);
+        }
+			$app->db->datalogDelete('web_folder','web_folder_id',$rec['web_folder_id']);
+        }
 	}
 }
 
diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php
index dff5148ae3..34a61a0b14 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -50,7 +50,7 @@ $app->load('tform_actions');
 
 class page_action extends tform_actions {
 
-	// Returna a "3/2/1" path hash from a numeric id '123'
+	//* Returna a "3/2/1" path hash from a numeric id '123'
 	function id_hash($id,$levels) {
 		$hash = "" . $id % 10 ;
 		$id /= 10 ;
@@ -141,10 +141,11 @@ class page_action extends tform_actions {
 			$records = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
+			print_r($this->dataRecord);
 			if(is_array($records)) {
 				foreach( $records as $rec) {
-					$selected = @($rec["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$rec[groupid]' $selected>$rec[name]</option>\r\n";
 				}
 			}
@@ -226,10 +227,11 @@ class page_action extends tform_actions {
 			$sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					//$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/temp/en.lng b/interface/web/temp/en.lng
deleted file mode 100644
index bf1b105d40..0000000000
--- a/interface/web/temp/en.lng
+++ /dev/null
@@ -1,2131 +0,0 @@
----|ISPConfig Language File|3.0.1.6|en
---|global|en|en.lng
-<?php
-$wb['conf_format_dateshort'] = 'Y-m-d';
-$wb['conf_format_datelong'] = 'l dS of F Y';
-$wb['conf_format_timeshort'] = 'H:i';
-$wb['conf_format_timelong'] = 'H:i:s';
-$wb['conf_format_datetime'] = 'Y-m-d H:i';
-
-$wb['error_301'] = 'Module not permitted for the current user.';
-$wb['error_302'] = 'Module invalid.';
-$wb['error_1001'] = 'The username and password cannot be empty !';
-$wb['error_1002'] = 'The username and/or password are not correct !';
-$wb['error_1003'] = 'The username is deactivated!';
-$wb['delete_confirmation'] = 'Do you really want to delete this record?';
-$wb['error_no_view_permission'] = 'You dont have the permission to view this record or this record does not exist!';
-$wb['error_no_delete_permission'] = 'You dont have the permission to delete this record!';
-$wb["page_txt"] = 'Page';
-$wb["page_of_txt"] = 'of';
-$wb["page_next_txt"] = 'Next';
-$wb["page_back_txt"] = 'Back';
-$wb["delete_txt"] = 'Delete';
-$wb["filter_txt"] = 'Filter';
-$wb["add_new_record_txt"] = 'Add new record';
-$wb['btn_save_txt'] = "Save";
-$wb['btn_cancel_txt'] = "Back";
-$wb['System'] = 'System';
-$wb['Client'] = 'Client';
-$wb['Email'] = 'Email';
-$wb['Monitor'] = 'Monitor';
-$wb['Sites'] = 'Sites';
-$wb['DNS'] = 'DNS';
-$wb['Tools'] = 'Tools';
-$wb['Help'] = 'Help';
-$wb['toolsarea_head_txt'] = 'Tools';
-?>
-
---|admin|en|en.lng
-<?php
-
-$wb[1001]	= "Username or password is empty.";
-$wb[1002]	= "Username or password is wrong.";
-$wb['Firewall'] = 'Firewall';
-$wb['Groups'] = 'Groups';
-$wb['groups_description'] = 'Form to edit systemuser groups.';
-$wb['Server']	= 'Server';
-$wb['Services']	= 'Services';
-$wb['Config'] = 'Config';
-$wb['Server Config'] = 'Server Config';
-$wb['Mail'] = 'Mail';
-$wb['Getmail'] = 'Getmail';
-$wb['Web'] = 'Web';
-$wb['FastCGI'] = 'FastCGI';
-$wb['Jailkit'] = 'Jailkit';
-$wb['System'] = 'System';
-$wb['Add user'] = 'Add user';
-$wb['Edit user'] = 'Edit user';
-$wb['CP Users'] = 'CP Users';
-$wb['Add group'] = 'Add group';
-$wb['Edit group'] = 'Edit group';
-$wb['Groups'] = 'Groups';
-$wb['Edit server'] = 'Edit server';
-$wb['Edit Server IP'] = 'Server IP addresses';
-$wb['Servers'] = 'Servers';
-$wb['Sync. Now'] = 'Sync. Now';
-$wb['DB Sync.'] = 'DB Sync.';
-$wb['Languages'] = 'Languages';
-$wb['New Language'] = 'New Language';
-$wb['Export'] = 'Export';
-$wb['Import'] = 'Import';
-$wb['Language Editor'] = 'Language Editor';
-$wb['Software'] = 'Software';
-$wb['Repositories'] = 'Repositories';
-$wb['Server Services'] = 'Server Services';
-
-?>
---|admin|en|en_firewall.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["tcp_port_txt"] = 'Open TCP ports';
-$wb["udp_port_txt"] = 'Open UDP ports';
-$wb["tcp_port_help_txt"] = 'Separated by comma';
-$wb["udp_port_help_txt"] = 'Separated by comma';
-$wb["active_txt"] = 'Active';
-$wb["firewall_error_unique"] = 'There is already a firewall record for this server.';
-$wb["active_txt"] = 'Active';
-$wb["tcp_ports_error_regex"] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".';
-$wb["udp_ports_error_regex"] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".';
-?>
---|admin|en|en_firewall_list.lng
-<?php
-$wb["list_head_txt"] = 'Firewall';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["tcp_port_txt"] = 'Open TCP ports';
-$wb["udp_port_txt"] = 'Open UDP ports';
-$wb["add_new_record_txt"] = 'Add Firewall record';
-?>
---|admin|en|en_groups.lng
-<?php
-$wb["description_txt"] = 'Description';
-$wb["name_txt"] = 'Group';
-$wb["name_err"] = 'Group must be min 1, max 30 Chars.';
-?>
---|admin|en|en_groups_list.lng
-<?php
-$wb["list_head_txt"] = 'Systemuser groups';
-$wb["description_txt"] = 'Description';
-$wb["name_txt"] = 'Group';
-$wb["add_new_record_txt"] = 'Add new Group';
-$wb["warning_txt"] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
-?>
---|admin|en|en_language_add.lng
-<?php
-$wb["list_head_txt"] = 'Add new language';
-$wb["language_select_txt"] = 'Select language basis';
-$wb["language_new_txt"] = 'New language';
-$wb["language_new_hint_txt"] = '2 characters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
-$wb['btn_save_txt'] = 'Create new language file set';
-$wb['btn_cancel_txt'] = 'Back';
-?>
---|admin|en|en_language_complete.lng
-<?php
-$wb["list_head_txt"] = 'Merge language';
-$wb["list_desc_txt"] = 'Merge the selected language file with the english master language file. <br />This adds missing strings from the english master language files to the selected language.';
-$wb["language_select_txt"] = 'Select language';
-$wb['btn_save_txt'] = 'Merge files now';
-$wb['btn_cancel_txt'] = 'Back';
-?>
---|admin|en|en_language_edit.lng
-<?php
-$wb['list_head_txt'] = 'Language file editor';
-$wb['language_select_txt'] = 'Select language';
-$wb['module_txt'] = 'Module';
-$wb['lang_file_txt'] = 'Language file';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Back';
-?>
-
---|admin|en|en_language_export.lng
-<?php
-$wb["list_head_txt"] = 'Export language files';
-$wb["language_select_txt"] = 'Select language';
-$wb['btn_save_txt'] = 'Export the selected language file set';
-$wb['btn_cancel_txt'] = 'Back';
-?>
---|admin|en|en_language_import.lng
-<?php
-$wb["list_head_txt"] = 'Import language file';
-$wb["language_import_txt"] = 'Select language file';
-$wb['btn_save_txt'] = 'Import the selected language file';
-$wb["language_overwrite_txt"] = 'Overwrite file, if exists.';
-$wb['btn_cancel_txt'] = 'Back';
-?>
---|admin|en|en_language_list.lng
-<?php
-$wb["list_head_txt"] = 'Language file editor';
-$wb["language_select_txt"] = 'Select language';
-$wb["module_txt"] = 'Module';
-$wb["lang_file_txt"] = 'Language file';
-$wb["lang_file_date_txt"] = 'Last modify';
-?>
-
---|admin|en|en_remote_user.lng
-<?php
-$wb['username_txt'] = 'Username:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Functions:';
-$wb['username_error_unique'] = 'Username must be unique';
-$wb['username_error_empty'] = 'Username cannot be empty';
-$wb['password_error_empty'] = 'Password cannot be empty';
-$wb['password_strength_txt'] = 'Password Strength:';
-?>
-
---|admin|en|en_remote_user_list.lng
-<?php
-$wb['list_head_txt'] = "Remote Users";
-$wb['list_desc_txt'] = "";
-$wb['add_new_record_txt'] = "Add new user";
-$wb['parent_remote_userid_txt'] = 'ID';
-$wb['username_txt'] = "Username";
-?>
-
-
---|admin|en|en_server.lng
-<?php
-$wb["config_txt"] = 'config';
-$wb["server_name_txt"] = 'Servername';
-$wb["mail_server_txt"] = 'Mailserver';
-$wb["web_server_txt"] = 'Webserver';
-$wb["dns_server_txt"] = 'DNS-Server';
-$wb["file_server_txt"] = 'Fileserver';
-$wb["db_server_txt"] = 'DB-Server';
-$wb["vserver_server_txt"] = 'VServer-Server';
-$wb["active_txt"] = 'Active';
-$wb["mirror_server_id_txt"] = 'Is mirror of Server';
-$wb["- None -"] = '- None -';
-?>
---|admin|en|en_server_config.lng
-<?php
-$wb["jailkit_chroot_home_txt"] = 'Jailkit chroot home';
-$wb["jailkit_chroot_app_sections_txt"] = 'Jailkit chroot app sections';
-$wb["jailkit_chroot_app_programs_txt"] = 'Jailkit chrooted applications';
-$wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit cron chrooted applications';
-$wb["website_path_txt"] = 'Website path';
-$wb["website_symlinks_txt"] = 'Website symlinks';
-$wb["website_basedir_txt"] = 'Website basedir';
-$wb["vhost_conf_dir_txt"] = 'Vhost config dir';
-$wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir';
-$wb["getmail_config_dir_txt"] = 'Getmail config dir';
-$wb["fastcgi_starter_path_txt"] = 'FastCGI starter path';
-$wb["fastcgi_starter_script_txt"] = 'FastCGI starter script';
-$wb["fastcgi_alias_txt"] = 'FastCGI Alias';
-$wb["fastcgi_phpini_path_txt"] = 'FastCGI php.ini Path';
-$wb["fastcgi_children_txt"] = 'FastCGI Children';
-$wb["fastcgi_max_requests_txt"] = 'FastCGI max. Requests';
-$wb["fastcgi_bin_txt"] = 'FastCGI Bin';
-$wb["module_txt"] = 'Module';
-$wb["maildir_path_txt"] = 'Maildir Path';
-$wb["homedir_path_txt"] = 'Homedir Path';
-$wb["mailuser_uid_txt"] = 'Mailuser UID';
-$wb["mailuser_gid_txt"] = 'Mailuser GID';
-$wb["mailuser_name_txt"] = 'Mailuser Name';
-$wb["mailuser_group_txt"] = 'Mailuser Group';
-$wb["relayhost_txt"] = 'Relayhost';
-$wb["relayhost_user_txt"] = 'Relayhost User';
-$wb["relayhost_password_txt"] = 'Relayhost Password';
-$wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit';
-$wb["message_size_limit_txt"] = 'Message Size Limit';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["netmask_txt"] = 'Netmask';
-$wb["gateway_txt"] = 'Gateway';
-$wb["hostname_txt"] = 'Hostname';
-$wb["nameservers_txt"] = 'Nameservers';
-$wb["auto_network_configuration_txt"] = 'Network Configuration';
-$wb["ip_address_error_wrong"] = 'Invalid IP address format.';
-$wb["netmask_error_wrong"] = 'Invalid Netmask format.';
-$wb["gateway_error_wrong"] = 'Invalid Gateway format.';
-$wb["hostname_error_empty"] = 'Hostname is empty.';
-$wb["nameservers_error_empty"] = 'Nameserver is empty.';
-$wb["config_dir_txt"] = 'Config directory';
-$wb["init_script_txt"] = 'Cron init script name';
-$wb["crontab_dir_txt"] = 'Path for individual crontabs';
-$wb["wget_txt"] = 'Path to wget program';
-$wb["web_user_txt"] = 'Apache user';
-$wb["web_group_txt"] = 'Apache group';
-$wb["security_level_txt"] = 'Security level';
-$wb["loglevel_txt"] = 'Loglevel';
-$wb["apps_vhost_port_txt"] = 'Apps-vhost port';
-$wb["apps_vhost_ip_txt"] = 'Apps-vhost IP';
-$wb["apps_vhost_servername_txt"] = 'Apps-vhost Domain';
-$wb["bind_user_txt"] = 'BIND User';
-$wb["bind_group_txt"] = 'BIND Group';
-$wb["bind_zonefiles_dir_txt"] = 'BIND zonefiles directory';
-$wb["named_conf_path_txt"] = 'BIND named.conf path';
-$wb["bind_user_error_empty"] = 'BIND user is empty.';
-$wb["bind_group_error_empty"] = 'BIND group is empty.';
-$wb["bind_zonefiles_dir_error_empty"] = 'BIND zonefiles directory is empty.';
-$wb["named_conf_path_error_empty"] = 'BIND named.conf path is empty.';
-$wb["named_conf_local_path_error_empty"] = 'BIND named.conf.local path is empty.';
-?>
---|admin|en|en_server_config_list.lng
-<?php
-$wb["list_head_txt"] = 'Server Configuration';
-$wb["server_name_txt"] = 'Server';
-?>
---|admin|en|en_server_ip.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["virtualhost_txt"] = 'HTTP NameVirtualHost';
-$wb["ip_error_wrong"] = 'The IP address is invalid';
-$wb["ip_error_unique"] = 'The IP address must be unique';
-?>
---|admin|en|en_server_ip_list.lng
-<?php
-$wb["list_head_txt"] = 'IP Addresses';
-$wb["server_id_txt"] = 'Server';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["add_new_record_txt"] = 'Add new IP Address';
-?>
---|admin|en|en_server_list.lng
-<?php
-$wb["list_head_txt"] = 'Server';
-$wb["server_name_txt"] = 'Name';
-$wb["mail_server_txt"] = 'Mail';
-$wb["web_server_txt"] = 'Web';
-$wb["dns_server_txt"] = 'DNS';
-$wb["file_server_txt"] = 'File';
-$wb["db_server_txt"] = 'DB';
-$wb["vserver_server_txt"] = 'VServer';
-$wb["add_new_record_txt"] = 'Add new Server';
-?>
---|admin|en|en_software_package_list.lng
-<?php
-$wb['list_head_txt'] = 'Software packages';
-$wb['installed_txt'] = 'Status';
-$wb['package_title_txt'] = 'Package';
-$wb['package_description_txt'] = 'Description';
-$wb['action_txt'] = 'Action';
-?>
-
---|admin|en|en_software_repo.lng
-<?php
-$wb["repo_name_txt"] = 'Repository';
-$wb["repo_url_txt"] = 'URL';
-$wb["repo_username_txt"] = 'User (optional)';
-$wb["repo_password_txt"] = 'Password (optional)';
-$wb["active_txt"] = 'Active';
-?>
---|admin|en|en_software_repo_list.lng
-<?php
-$wb["list_head_txt"] = 'Repository';
-$wb["active_txt"] = 'Active';
-$wb["repo_name_txt"] = 'Repository';
-$wb["repo_url_txt"] = 'URL';
-?>
---|admin|en|en_software_update_list.lng
-<?php
-$wb['list_head_txt'] = 'Software updates';
-$wb['server_select_txt'] = 'Select server';
-$wb['installed_txt'] = 'Action';
-$wb['update_title_txt'] = 'Update';
-$wb['version_txt'] = 'Version';
-$wb['action_txt'] = 'Action';
-?>
-
---|admin|en|en_system_config.lng
-<?php
-
-$wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.';
-$wb['dbname_prefix_txt'] = 'Database name prefix';
-$wb['dbuser_prefix_txt'] = 'Database user prefix';
-$wb['shelluser_prefix_txt'] = 'Shell user prefix';
-$wb['ftpuser_prefix_txt'] = 'FTP user prefix';
-$wb['dbname_prefix_error_regex'] = 'Char not allowed in database name prefix.';
-$wb['dbuser_prefix_error_regex'] = 'Char not allowed in database user prefix.';
-$wb['ftpuser_prefix_error_regex'] = 'Char not allowed in ftp user prefix.';
-$wb['shelluser_prefix_error_regex'] = 'Char not allowed in shell user prefix.';
-$wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list';
-$wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list';
-$wb['webmail_url_txt'] = 'Webmail URL';
-$wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL';
-
-?>
---|admin|en|en_users.lng
-<?php
-$wb["username_txt"] = 'Username';
-$wb["username_err"] = 'The username is too long or contains invalid characters.';
-$wb["username_empty"] = 'The username is empty.';
-$wb["username_unique"] = 'There is already a user with this username.';
-$wb["passwort_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["modules_txt"] = 'Module';
-$wb["startmodule_txt"] = 'Startmodule';
-$wb["app_theme_txt"] = 'Design';
-$wb["typ_txt"] = 'Type';
-$wb["active_txt"] = 'Active';
-$wb["language_txt"] = 'Language';
-$wb["name_txt"] = 'Name';
-$wb["vorname_txt"] = 'Forename';
-$wb["unternehmen_txt"] = 'Company';
-$wb["strasse_txt"] = 'Street';
-$wb["ort_txt"] = 'City';
-$wb["plz_txt"] = 'ZIP';
-$wb["land_txt"] = 'Country';
-$wb["email_txt"] = 'Email';
-$wb["url_txt"] = 'Url';
-$wb["telefon_txt"] = 'Telephone';
-$wb["fax_txt"] = 'Fax';
-$wb["groups_txt"] = 'Groups';
-$wb["default_group_txt"] = 'Default Group';
-$wb["startmodule_err"] = 'Start module is not within modules.';
-?>
-
---|admin|en|en_users_list.lng
-<?php
-$wb["list_head_txt"] = 'Users';
-$wb["username_txt"] = 'Username';
-$wb["name_txt"] = 'Name';
-$wb["vorname_txt"] = 'Forename';
-$wb["ort_txt"] = 'city';
-$wb["add_new_record_txt"] = 'Add new user';
-$wb["warning_txt"] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
-?>
---|client|en|en.lng
-<?php
-$wb['Client'] = 'Client';
-$wb['Address'] = 'Address';
-$wb['Limits'] = 'Limits';
-$wb['Add Client'] = 'Add Client';
-$wb['Edit Client'] = 'Edit Client';
-$wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Edit Client-Templates';
-$wb['Add Reseller'] = 'Add Reseller';
-$wb['Edit Reseller'] = 'Edit Reseller';
-$wb['Resellers'] = 'Resellers';
-?>
---|client|en|en_client.lng
-<?php
-$wb["limit_maildomain_txt"] = 'Max. number of email domains';
-$wb["limit_mailbox_txt"] = 'Max. number of mailboxes';
-$wb["limit_mailalias_txt"] = 'Max. number of email aliases';
-$wb["limit_mailaliasdomain_txt"] = 'Max. number of domain aliases';
-$wb["limit_mailforward_txt"] = 'Max. number of email forwarders';
-$wb["limit_mailcatchall_txt"] = 'Max. number of email catchall accounts';
-$wb["limit_mailrouting_txt"] = 'Max. number of email routes';
-$wb["limit_mailfilter_txt"] = 'Max. number of email filters';
-$wb["limit_fetchmail_txt"] = 'Max. number of fetchmail accounts';
-$wb["limit_mailquota_txt"] = 'Mailbox quota';
-$wb["limit_spamfilter_wblist_txt"] = 'Max. number of spamfilter white / blacklist filters';
-$wb["limit_spamfilter_user_txt"] = 'Max. number of spamfilter users';
-$wb["limit_spamfilter_policy_txt"] = 'Max. number of spamfilter policys';
-$wb["default_mailserver_txt"] = 'Default Mailserver';
-$wb["company_name_txt"] = 'Company name';
-$wb["contact_name_txt"] = 'Contact name';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["language_txt"] = 'Language';
-$wb["usertheme_txt"] = 'Theme';
-$wb["street_txt"] = 'Street';
-$wb["zip_txt"] = 'ZIP';
-$wb["city_txt"] = 'City';
-$wb["state_txt"] = 'State';
-$wb["country_txt"] = 'Country';
-$wb["telephone_txt"] = 'Telephone';
-$wb["mobile_txt"] = 'Mobile';
-$wb["fax_txt"] = 'Fax';
-$wb["email_txt"] = 'Email';
-$wb["internet_txt"] = 'Internet';
-$wb["icq_txt"] = 'ICQ';
-$wb["notes_txt"] = 'Notes';
-$wb["company_txt"] = 'Company';
-$wb["title_txt"] = 'Title';
-$wb["firstname_txt"] = 'Firstname';
-$wb["surname_txt"] = 'Surname';
-$wb["limit_domain_txt"] = 'limit_domain';
-$wb["limit_subdomain_txt"] = 'limit_subdomain';
-$wb["limit_webquota_txt"] = 'limit_webquota';
-$wb["limit_database_txt"] = 'limit_database';
-$wb["limit_cron_txt"] = 'Max. number of cron jobs';
-$wb["limit_cron_type_txt"] = 'Max. type of cron jobs (chrooted and full implies url)';
-$wb["limit_cron_frequency_txt"] = 'Min. delay between executions';
-$wb["ip_address_txt"] = 'ip_address';
-$wb["limit_client_error_notint"] = 'Client Limit is not a number.';
-$wb["firstname_error_empty"] = 'Firstname is empty.';
-$wb["contact_error_empty"] = 'Contact name is empty.';
-$wb["default_webserver_txt"] = 'Default Webserver';
-$wb["limit_web_domain_txt"] = 'Max. number of web domains';
-$wb["limit_web_aliasdomain_txt"] = 'Max. number of web aliasdomains';
-$wb["limit_web_subdomain_txt"] = 'Max. number of web subdomains';
-$wb["limit_ftp_user_txt"] = 'Max. number of FTP users';
-$wb["default_dnsserver_txt"] = 'Default DNS Server';
-$wb["limit_dns_zone_txt"] = 'Max. number of DNS zones';
-$wb["limit_dns_record_txt"] = 'Max. number DNS records';
-$wb["limit_shell_user_txt"] = 'Max. number of Shell users';
-$wb["limit_client_txt"] = 'Max. number of Clients';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["limit_maildomain_error_notint"] = 'The email domain limit must be a number.';
-$wb["limit_mailbox_error_notint"] = 'The mailbox limit must be a number.';
-$wb["limit_mailalias_error_notint"] = 'The email alias limit must be a number.';
-$wb["limit_mailaliasdomain_error_notint"] = 'The email domain alias limit must be a number.';
-$wb["limit_mailforward_error_notint"] = 'The email forward limit must be a number.';
-$wb["limit_mailcatchall_error_notint"] = 'The email catchall limit must be a number.';
-$wb["limit_mailrouting_error_notint"] = 'The email routing limit must be a number.';
-$wb["limit_mailfilter_error_notint"] = 'The email filter limit must be a number.';
-$wb["limit_mailfetchmail_error_notint"] = 'The fetchmail limit must be a number.';
-$wb["limit_mailquota_error_notint"] = 'The email quota limit must be a number.';
-$wb["limit_spamfilter_wblist_error_notint"] = 'The spamfilter white / blacklist limit must be a number.';
-$wb["limit_spamfilter_user_error_notint"] = 'The spamfilter user limit must be a number.';
-$wb["limit_spamfilter_policy_error_notint"] = 'The spamfilter policy limit must be a number.';
-$wb["limit_web_domain_error_notint"] = 'The website limit must be a number.';
-$wb["limit_web_aliasdomain_error_notint"] = 'The website alias domain limit must be a number.';
-$wb["limit_web_subdomain_error_notint"] = 'The website subdomain limit must be a number.';
-$wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.';
-$wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.';
-$wb["limit_client_error_notint"] = 'The sub client limit must be a number.';
-$wb["default_dbserver_txt"] = 'Default Database Server';
-$wb["limit_database_txt"] = 'Max. number of Databases';
-$wb["limit_database_error_notint"] = 'The database limit must be a number.';
-$wb["limit_cron_error_notint"] = 'The cron limit must be a number.';
-$wb["limit_cron_error_frequency"] = 'The cron frequency limit must be a number.';
-$wb["username_error_regex"] = 'The Username contains invalid chracaters.';
-$wb["template_master_txt"] = 'Master template';
-$wb["template_additional_txt"] = 'Addon template';
-$wb["ssh_chroot_txt"] = 'SSH-Chroot Options';
-$wb["web_php_options_txt"] = 'PHP Options';
-$wb["limit_client_error"] = 'The max. number of clients is reached.';
-$wb["limit_web_quota_txt"] = 'Web Quota';
-?>
-
---|client|en|en_clients_list.lng
-<?php
-$wb["list_head_txt"] = 'Clients';
-$wb["client_id_txt"] = 'ID';
-$wb["company_name_txt"] = 'Company name';
-$wb["contact_name_txt"] = 'Contact name';
-$wb["city_txt"] = 'City';
-$wb["country_txt"] = 'Country';
-$wb["add_new_record_txt"] = 'Add new client';
-?>
---|client|en|en_client_template.lng
-<?php
-
-$wb["limit_client_error_notint"] = 'Client Limit is not a number.';
-$wb["limit_maildomain_txt"] = 'Max. number of email domains';
-$wb["limit_mailbox_txt"] = 'Max. number of mailboxes';
-$wb["limit_mailalias_txt"] = 'Max. number of email aliases';
-$wb["limit_mailaliasdomain_txt"] = 'Max. number of domain aliases';
-$wb["limit_mailforward_txt"] = 'Max. number of email forwarders';
-$wb["limit_mailcatchall_txt"] = 'Max. number of email catchall accounts';
-$wb["limit_mailrouting_txt"] = 'Max. number of email routes';
-$wb["limit_mailfilter_txt"] = 'Max. number of email filters';
-$wb["limit_fetchmail_txt"] = 'Max. number of fetchmail accounts';
-$wb["limit_mailquota_txt"] = 'Mailbox quota';
-$wb["limit_spamfilter_wblist_txt"] = 'Max. number of spamfilter white / blacklist filters';
-$wb["limit_spamfilter_user_txt"] = 'Max. number of spamfilter users';
-$wb["limit_spamfilter_policy_txt"] = 'Max. number of spamfilter policys';
-$wb["limit_domain_txt"] = 'limit_domain';
-$wb["limit_subdomain_txt"] = 'limit_subdomain';
-$wb["limit_webquota_txt"] = 'limit_webquota';
-$wb["limit_database_txt"] = 'limit_database';
-$wb["limit_cron_txt"] = 'Max. number of cron jobs';
-$wb["limit_cron_type_txt"] = 'Max. type of cron jobs (chrooted and full implies url)';
-$wb["limit_cron_frequency_txt"] = 'Min. delay between executions';
-$wb["limit_web_domain_txt"] = 'Max. number of web domains';
-$wb["limit_web_aliasdomain_txt"] = 'Max. number of web aliasdomains';
-$wb["limit_web_subdomain_txt"] = 'Max. number of web subdomains';
-$wb["limit_ftp_user_txt"] = 'Max. number of FTP users';
-$wb["limit_dns_zone_txt"] = 'Max. number of DNS zones';
-$wb["limit_dns_record_txt"] = 'Max. number DNS records';
-$wb["limit_shell_user_txt"] = 'Max. number of Shell users';
-$wb["limit_client_txt"] = 'Max. number of Clients';
-$wb["limit_maildomain_error_notint"] = 'The email domain limit must be a number.';
-$wb["limit_mailbox_error_notint"] = 'The mailbox limit must be a number.';
-$wb["limit_mailalias_error_notint"] = 'The email alias limit must be a number.';
-$wb["limit_mailaliasdomain_error_notint"] = 'The email domain alias limit must be a number.';
-$wb["limit_mailforward_error_notint"] = 'The email forward limit must be a number.';
-$wb["limit_mailcatchall_error_notint"] = 'The email catchall limit must be a number.';
-$wb["limit_mailrouting_error_notint"] = 'The email routing limit must be a number.';
-$wb["limit_mailfilter_error_notint"] = 'The email filter limit must be a number.';
-$wb["limit_mailfetchmail_error_notint"] = 'The fetchmail limit must be a number.';
-$wb["limit_mailquota_error_notint"] = 'The email quota limit must be a number.';
-$wb["limit_spamfilter_wblist_error_notint"] = 'The spamfilter white / blacklist limit must be a number.';
-$wb["limit_spamfilter_user_error_notint"] = 'The spamfilter user limit must be a number.';
-$wb["limit_spamfilter_policy_error_notint"] = 'The spamfilter policy limit must be a number.';
-$wb["limit_web_domain_error_notint"] = 'The website limit must be a number.';
-$wb["limit_web_aliasdomain_error_notint"] = 'The website alias domain limit must be a number.';
-$wb["limit_web_subdomain_error_notint"] = 'The website subdomain limit must be a number.';
-$wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.';
-$wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.';
-$wb["limit_database_txt"] = 'Max. number of Databases';
-$wb["limit_database_error_notint"] = 'The database limit must be a number.';
-$wb["limit_cron_error_notint"] = 'The cron limit must be a number.';
-$wb["limit_cron_error_frequency"] = 'The cron frequency limit must be a number.';
-$wb["error_template_name_empty"] = 'Please enter a Template name';
-$wb["limit_web_quota_txt"] = 'Web Quota';
-?>
---|client|en|en_client_template_list.lng
-<?php
-$wb["list_head_txt"] = 'Client-Templates';
-$wb["template_type_txt"] = 'Type';
-$wb["template_name_txt"] = 'Template name';
-?>
-
---|client|en|en_reseller.lng
-<?php
-$wb["limit_maildomain_txt"] = 'Max. number of email domains';
-$wb["limit_mailbox_txt"] = 'Max. number of mailboxes';
-$wb["limit_mailalias_txt"] = 'Max. number of email aliases';
-$wb["limit_mailforward_txt"] = 'Max. number of email forwarders';
-$wb["limit_mailcatchall_txt"] = 'Max. number of email catchall accounts';
-$wb["limit_mailrouting_txt"] = 'Max. number of email routes';
-$wb["limit_mailfilter_txt"] = 'Max. number of email filters';
-$wb["limit_fetchmail_txt"] = 'Max. number of fetchmail accounts';
-$wb["limit_mailquota_txt"] = 'Mailbox quota';
-$wb["limit_spamfilter_wblist_txt"] = 'Max. number of spamfilter white / blacklist filters';
-$wb["limit_spamfilter_user_txt"] = 'Max. number of spamfilter users';
-$wb["limit_spamfilter_policy_txt"] = 'Max. number of spamfilter policys';
-$wb["default_mailserver_txt"] = 'Default Mailserver';
-$wb["company_name_txt"] = 'Company name';
-$wb["contact_name_txt"] = 'Contact name';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["language_txt"] = 'Language';
-$wb["usertheme_txt"] = 'Theme';
-$wb["street_txt"] = 'Street';
-$wb["zip_txt"] = 'ZIP';
-$wb["city_txt"] = 'City';
-$wb["state_txt"] = 'State';
-$wb["country_txt"] = 'Country';
-$wb["telephone_txt"] = 'Telephone';
-$wb["mobile_txt"] = 'Mobile';
-$wb["fax_txt"] = 'Fax';
-$wb["email_txt"] = 'Email';
-$wb["internet_txt"] = 'Internet';
-$wb["icq_txt"] = 'ICQ';
-$wb["notes_txt"] = 'Notes';
-$wb["company_txt"] = 'Company';
-$wb["title_txt"] = 'Title';
-$wb["firstname_txt"] = 'Firstname';
-$wb["surname_txt"] = 'Surname';
-$wb["limit_domain_txt"] = 'limit_domain';
-$wb["limit_subdomain_txt"] = 'limit_subdomain';
-$wb["limit_webquota_txt"] = 'limit_webquota';
-$wb["limit_database_txt"] = 'limit_database';
-$wb["limit_cron_txt"] = 'Max. number of cron jobs';
-$wb["limit_cron_type_txt"] = 'Max. type of cron jobs (chrooted and full implies url)';
-$wb["limit_cron_frequency_txt"] = 'Min. delay between executions';
-$wb["ip_address_txt"] = 'ip_address';
-$wb["limit_client_error_notint"] = 'Client Limit is not a number.';
-$wb["firstname_error_empty"] = 'Firstname is empty.';
-$wb["contact_error_empty"] = 'Contact name is empty.';
-$wb["default_webserver_txt"] = 'Default Webserver';
-$wb["limit_web_domain_txt"] = 'Max. number of web domains';
-$wb["limit_web_aliasdomain_txt"] = 'Max. number of web aliasdomains';
-$wb["limit_web_subdomain_txt"] = 'Max. number of web subdomains';
-$wb["limit_ftp_user_txt"] = 'Max. number of FTP users';
-$wb["default_dnsserver_txt"] = 'Default DNS Server';
-$wb["limit_dns_zone_txt"] = 'Max. number of DNS zones';
-$wb["limit_dns_record_txt"] = 'Max. number DNS records';
-$wb["limit_shell_user_txt"] = 'Max. number of Shell users';
-$wb["limit_client_txt"] = 'Max. number of Clients';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["limit_maildomain_error_notint"] = 'The email domain limit must be a number.';
-$wb["limit_mailbox_error_notint"] = 'The mailbox limit must be a number.';
-$wb["limit_mailalias_error_notint"] = 'The email alias limit must be a number.';
-$wb["limit_mailforward_error_notint"] = 'The email forward limit must be a number.';
-$wb["limit_mailcatchall_error_notint"] = 'The email catchall limit must be a number.';
-$wb["limit_mailrouting_error_notint"] = 'The email routing limit must be a number.';
-$wb["limit_mailfilter_error_notint"] = 'The email filter limit must be a number.';
-$wb["limit_mailfetchmail_error_notint"] = 'The fetchmail limit must be a number.';
-$wb["limit_mailquota_error_notint"] = 'The email quota limit must be a number.';
-$wb["limit_spamfilter_wblist_error_notint"] = 'The spamfilter white / blacklist limit must be a number.';
-$wb["limit_spamfilter_user_error_notint"] = 'The spamfilter user limit must be a number.';
-$wb["limit_spamfilter_policy_error_notint"] = 'The spamfilter policy limit must be a number.';
-$wb["limit_web_domain_error_notint"] = 'The website limit must be a number.';
-$wb["limit_web_aliasdomain_error_notint"] = 'The website alias domain limit must be a number.';
-$wb["limit_web_subdomain_error_notint"] = 'The website subdomain limit must be a number.';
-$wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.';
-$wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.';
-$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.';
-$wb["limit_client_error_notint"] = 'The sub client limit must be a number.';
-$wb["default_dbserver_txt"] = 'Default Database Server';
-$wb["limit_database_txt"] = 'Max. number of Databases';
-$wb["limit_database_error_notint"] = 'The database limit must be a number.';
-$wb["limit_cron_error_notint"] = 'The cron limit must be a number.';
-$wb["limit_cron_error_frequency"] = 'The cron frequency limit must be a number.';
-$wb["username_error_regex"] = 'The Username contains invalid chracaters.';
-$wb["template_master_txt"] = 'Master template';
-$wb["template_additional_txt"] = 'Addon template';
-$wb["ssh_chroot_txt"] = 'SSH-Chroot Options';
-$wb["web_php_options_txt"] = 'PHP Options';
-$wb["limit_client_error"] = 'The max. number of clients is reached.';
-$wb["limit_client_error_positive"] = 'The number of clients must be > 0';
-$wb["limit_web_quota_txt"] = 'Web Quota';
-?>
-
---|client|en|en_resellers_list.lng
-<?php
-$wb["list_head_txt"] = 'Resellers';
-$wb["client_id_txt"] = 'ID';
-$wb["company_name_txt"] = 'Company name';
-$wb["contact_name_txt"] = 'Contact name';
-$wb["city_txt"] = 'City';
-$wb["country_txt"] = 'Country';
-$wb["add_new_record_txt"] = 'Add new reseller';
-?>
---|designer|en|en.lng
-<?php
-
-?>
---|designer|en|en_form_edit.lng
-<?php
-$wb["name_txt"] = 'Formname';
-$wb["title_txt"] = 'Formutitle';
-$wb["template_txt"] = 'Template';
-$wb["navframe_txt"] = 'NaviFrame';
-$wb["startpage_txt"] = 'Startpage';
-$wb["tab_width_txt"] = 'Tab width';
-$wb["save_txt"] = 'Save';
-$wb["cancel_txt"] = 'Cancel';
-$wb["header_txt"] = 'Form properties';
-$wb["description_txt"] = 'Description';
-$wb["action_txt"] = 'Action (script)';
-$wb["db_table_txt"] = 'DB Table';
-$wb["db_table_idx_txt"] = 'DB Table Index';
-$wb["db_history_txt"] = 'Undo Log';
-$wb["tab_default_txt"] = 'Default Tab';
-$wb["list_default_txt"] = 'Default Liste';
-$wb["tab_width_txt"] = 'Tab width';
-$wb["auth_txt"] = 'Permissions';
-$wb["auth_preset_userid_txt"] = 'UserID';
-$wb["auth_preset_groupid_txt"] = 'GroupID';
-$wb["auth_preset_perm_user_txt"] = 'Perm. User';
-$wb["auth_preset_perm_group_txt"] = 'Perm. Group';
-$wb["auth_preset_perm_other_txt"] = 'Perm. Other';
-
-?>
---|designer|en|en_form_list.lng
-<?php
-$wb["list_head_txt"] = 'Backend Form';
-$wb["form_txt"] = 'Form';
-$wb["module_txt"] = 'Module';
-$wb["title_txt"] = 'Title';
-$wb["description_txt"] = 'Description';
-?>
---|designer|en|en_form_show.lng
-<?php
-$wb["header_txt"] = 'Formeditor';
-$wb["title_txt"] = 'Formtitle';
-$wb["name_txt"] = 'Formname';
-$wb["delete_txt"] = 'Delete';
-$wb["properties_txt"] = 'Properties';
-$wb["new_tab_txt"] = 'Tab new';
-$wb["edit_txt"] = 'Edit';
-$wb["new_txt"] = 'Neu';
-$wb["up_txt"] = '^';
-$wb["down_txt"] = 'v';
-$wb["module_txt"] = 'Module';
-$wb["form_txt"] = 'Form';
-$wb["description_txt"] = 'Description';
-$wb["module_del_txt"] = "Delete the module and all subdirectories?";
-$wb["menu_del_txt"] = "Delete menu with all menuitems?";
-$wb["item_del_txt"] = "Delete menuitem?";
-?>
---|designer|en|en_module_edit.lng
-<?php
-$wb["name_txt"] = 'Modulename';
-$wb["title_txt"] = 'Moduletitle';
-$wb["template_txt"] = 'Template file';
-$wb["navframe_txt"] = 'NaviFrame';
-$wb["startpage_txt"] = 'Default page';
-$wb["tab_width_txt"] = 'Tab width';
-$wb["save_txt"] = 'Save';
-$wb["cancel_txt"] = 'Cancel';
-$wb["header_txt"] = 'Module properties';
-$wb["description_txt"] = '
-<b>Description</b>
-<br><br>
-<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br>
-<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br>
-<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br>
-<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br>
-<b>Default page:</b> These page will be shown when the module is opened.<br>
-<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br>
-<b>Hint:</b> All paths are relative to the directory "web".
-';
-
-?>
---|designer|en|en_module_list.lng
-<?php
-$wb["list_head_txt"] = 'Backend Module';
-$wb["module_txt"] = 'Module';
-$wb["title_txt"] = 'Title';
-?>
---|designer|en|en_module_nav_edit.lng
-<?php
-$wb["title_txt"] = 'Title';
-$wb["header_txt"] = 'Navi properties';
-$wb["save_txt"] = 'Save';
-$wb["cancel_txt"] = 'Cancel';
-?>
---|designer|en|en_module_nav_item_edit.lng
-<?php
-$wb["title_txt"] = 'Title';
-$wb["target_txt"] = 'Target';
-$wb["link_txt"] = 'Link';
-$wb["header_txt"] = 'Navi properties';
-$wb["save_txt"] = 'Save';
-$wb["cancel_txt"] = 'Cancel';
-?>
---|designer|en|en_module_show.lng
-<?php
-$wb["header_txt"] = 'Menu editor';
-$wb["title_txt"] = 'Title';
-$wb["name_txt"] = 'Module';
-$wb["delete_txt"] = 'Delete';
-$wb["properties_txt"] = 'Properties';
-$wb["new_menu_txt"] = 'Menu new';
-$wb["edit_txt"] = 'Edit';
-$wb["delete_txt"] = 'Delete';
-$wb["new_txt"] = 'New';
-$wb["up_txt"] = 'Up';
-$wb["down_txt"] = 'Down';
-$wb["module_txt"] = 'Module';
-$wb["module_del_txt"] = "Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?";
-$wb["menu_del_txt"] = "Wollen Sie das Menü mit allen Untereinträgen löschen?";
-$wb["item_del_txt"] = "Wollen Sie den Menüeintrag löschen?";
-?>
---|dns|en|en.lng
-<?php
-
-$wb['DNS'] = 'DNS';
-$wb['Zones'] = 'Zones';
-$wb['DNS A'] = 'DNS A';
-$wb['DNS ALIAS'] = 'DNS ALIAS';
-$wb['DNS CNAME'] = 'DNS CNAME';
-$wb['DNS hinfo'] = 'DNS hinfo';
-$wb['DNS mx'] = 'DNS mx';
-$wb['DNS ns'] = 'DNS ns';
-$wb['DNS ptr'] = 'DNS ptr';
-$wb['DNS RP'] = 'DNS RP';
-$wb['DNS Zone'] = 'DNS Zone';
-$wb['Records'] = 'Records';
-$wb['DNS SRV'] = 'DNS SRV';
-$wb['DNS TXT Record'] = 'DNS TXT Record';
-$wb['DNS TXT'] = 'DNS TXT';
-
-?>
---|dns|en|en_dns_a.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'IP-Address';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'IP-Address empty';
-$wb["data_error_regex"] = 'IP-Address format invalid';
-$wb["data_error_duplicate"] = 'Duplicate A-Record';
-?>
---|dns|en|en_dns_aaaa.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'IPv6-Address';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'IP-Address empty';
-$wb["data_error_regex"] = 'IP-Address format invalid';
-?>
---|dns|en|en_dns_alias.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Target Hostname';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Target hostname empty';
-$wb["data_error_regex"] = 'Target hostname format invalid';
-?>
---|dns|en|en_dns_a_list.lng
-<?php
-$wb["list_head_txt"] = 'A-Record';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Name';
-$wb["data_txt"] = 'Data';
-$wb["aux_txt"] = 'Priority';
-$wb["type_txt"] = 'Type';
-$wb["add_new_record_txt"] = 'Add new DNS A-Record';
-$wb["page_txt"] = 'Page';
-$wb["page_of_txt"] = 'of';
-$wb['delete_confirmation'] = 'Do you really want to delete this record?';
-?>
---|dns|en|en_dns_cname.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Target Hostname';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Target hostname empty';
-$wb["data_error_regex"] = 'Target hostname format invalid';
-?>
---|dns|en|en_dns_hinfo.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Host Information';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Host information empty';
-$wb["data_error_regex"] = 'Host Information format invalid';
-?>
---|dns|en|en_dns_mx.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Mailserver hostname';
-$wb["aux_txt"] = 'Priority';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Mailserver hostname empty';
-$wb["data_error_regex"] = 'Mailserver hostname format invalid';
-?>
---|dns|en|en_dns_ns.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Zone';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Nameserver Hostname';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The zone is empty.';
-$wb["name_error_regex"] = 'The zone has the wrong format.';
-$wb["data_error_empty"] = 'Nameserver empty';
-$wb["data_error_regex"] = 'Nameserver format invalid';
-?>
---|dns|en|en_dns_ptr.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Name';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Canonical Hostname';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The name is empty.';
-$wb["name_error_regex"] = 'The name has the wrong format.';
-$wb["data_error_empty"] = 'Canonical hostname empty';
-$wb["data_error_regex"] = 'Canonical hostname format invalid';
-?>
---|dns|en|en_dns_rp.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Responsible Person';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Responsible person field empty';
-$wb["data_error_regex"] = 'Responsible person field format invalid';
-?>
---|dns|en|en_dns_soa.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["origin_txt"] = 'Zone (SOA)';
-$wb["ns_txt"] = 'NS';
-$wb["mbox_txt"] = 'Email';
-$wb["serial_txt"] = 'Serial';
-$wb["refresh_txt"] = 'Refresh';
-$wb["retry_txt"] = 'Retry';
-$wb["expire_txt"] = 'Expire';
-$wb["minimum_txt"] = 'Minimum';
-$wb["ttl_txt"] = 'TTL';
-$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_zone_txt"] = 'The max. number of DNS zones for your account is reached.';
-$wb["client_txt"] = 'Client';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["server_id_error_empty"] = 'No server selected';
-$wb["origin_error_empty"] = 'Zone empty.';
-$wb["origin_error_unique"] = 'There is already a record for this zone.';
-$wb["origin_error_regex"] = 'Zone has a invalid format.';
-$wb["ns_error_regex"] = 'NS has a invalid format.';
-$wb["mbox_error_empty"] = 'Email is empty.';
-$wb["mbox_error_regex"] = 'Email format invalid.';
-$wb["also_notify_txt"] = 'Also Notify';
-$wb["update_acl_txt"] = 'Update ACL';
-?>
---|dns|en|en_dns_soa_list.lng
-<?php
-$wb["list_head_txt"] = 'DNS Zones';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["origin_txt"] = 'Zone';
-$wb["ns_txt"] = 'NS';
-$wb["mbox_txt"] = 'Email';
-$wb["add_new_record_txt"] = 'Add new DNS Zone (SOA)';
-?>
---|dns|en|en_dns_srv.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Server Record';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Server record empty';
-$wb["data_error_regex"] = 'Server record format invalid';
-$wb["srv_error_regex"] = 'Invalid server record format. The server record must contain 3 text strings separated by spaces.';
-?>
---|dns|en|en_dns_template.lng
-<?php
-$wb["name_txt"] = 'Name';
-$wb["fields_txt"] = 'Fields';
-$wb["template_txt"] = 'Template';
-$wb["visible_txt"] = 'Visible';
-?>
---|dns|en|en_dns_template_list.lng
-<?php
-$wb["list_head_txt"] = 'DNS Wizard Template';
-$wb["visible_txt"] = 'Visible';
-$wb["name_txt"] = 'Name';
-$wb["add_new_record_txt"] = 'Add new record';
-?>
---|dns|en|en_dns_txt.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Text';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Text empty';
-$wb["data_error_regex"] = 'Text format invalid';
-?>
---|dns|en|en_dns_wizard.lng
-<?php
-
-$wb['template_id_txt'] = 'Template';
-$wb['server_id_txt'] = 'Server';
-$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Create DNS Record';
-$wb["btn_cancel_txt"] = 'Cancel';
-$wb['domain_txt'] = 'Domain';
-$wb['email_txt'] = 'Email';
-$wb['ns1_txt'] = 'NS 1';
-$wb['ns2_txt'] = 'NS 2';
-$wb['ip_txt'] = 'IP Address';
-$wb['error_origin_empty'] = 'Origin empty.';
-$wb['error_ns_empty'] = 'NS empty.';
-$wb['error_mbox_empty'] = 'Mbox empty.';
-$wb['error_refresh_empty'] = 'Refresh empty.';
-$wb['error_retry_empty'] = 'Retry empty.';
-$wb['error_expire_empty'] = 'Expire empty.';
-$wb['error_minimum_empty'] = 'Minimum empty.';
-$wb['error_ttl_empty'] = 'TTL empty.';
-$wb['error_domain_empty'] = 'Domain empty';
-$wb['error_ip_empty'] = 'IP empty.';
-$wb['error_ns1_empty'] = 'NS1 empty.';
-$wb['error_ns2_empty'] = 'NS2 empty.';
-$wb['error_email_empty'] = 'EMail empty.';
-
-?>
---|help|en|en.lng
-<?php
-$wb['Support Message'] = 'Support Message';
-$wb['Message'] = 'Message';
-$wb['Send message'] = 'Send message';
-$wb['View messages'] = 'View messages';
-$wb['Support'] = 'Support';
-
-?>
-
---|help|en|en_support_message.lng
-<?php
-$wb['recipient_id_txt'] = 'Recipient ID';
-$wb['sender_id_txt'] = 'Sender ID';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['tstamp_txt'] = 'Timestamp';
-?>
-
---|help|en|en_support_message_list.lng
-<?php
-$wb['list_head_txt'] = 'Support Messages';
-$wb['sender_id_txt'] = 'Sender';
-$wb['subject_txt'] = 'Subject';
-$wb["add_new_record_txt"] = 'Create new support message';
-?>
---|login|en|en.lng
-<?php
-
-$wb['error_user_password_empty']	= "Username or Password empty.";
-$wb['error_user_password_incorrect']	= "Username or Password wrong.";
-$wb['error_user_blocked']	= "User is blocked.";
-$wb['error_user_too_many_logins']	= "To many wrong login's, Please retry it after 15 minutes";
-$wb['pass_reset_txt'] = 'A new password will be generated and send to your email address if the email address entered below matches the email address in your client settings.';
-$wb['pw_reset'] = 'The password has been reset and send to your email address.';
-$wb['pw_error'] = 'Username or email address does not match.';
-$wb['pw_error_noinput'] = 'Please enter email address and username.';
-
-$wb['pw_reset_mail_msg'] = 'The password to your ISPConfig 3 control panel account has been reset. The new password is: ';
-$wb['pw_reset_mail_title'] = 'ISPConfig 3 Control panel password has been reset.';
-
-$wb['user_regex_error'] = 'Username contains unallowed characters or is longer then 64 characters.';
-$wb['pw_error_length'] = 'The password length is > 64 characters.';
-
-$wb['username_txt']	= "Username";
-$wb['password_txt']	= "Password";
-$wb['login_button_txt']	= "Login";
-
-?>
---|mail|en|en.lng
-<?php
-$wb['Email Alias'] = 'Email Alias';
-$wb['Email Blacklist'] = 'Email Blacklist';
-$wb['Blacklist'] = 'Blacklist';
-$wb['Mail Content Filter'] = 'Mail Content Filter';
-$wb['Filter'] = 'Filter';
-$wb['Mail Domain'] = 'Mail Domain';
-$wb['Domain'] = 'Domain';
-$wb['Email Catchall'] = 'Email Catchall';
-$wb['Email Forward'] = 'Email Forward';
-$wb['Get Email'] = 'Get Email';
-$wb['Spamfilter'] = 'Spamfilter';
-$wb['Email Routing'] = 'Email Routing';
-$wb['Email transport'] = 'Email transport';
-$wb['Mailbox'] = 'Mailbox';
-$wb['Autoresponder'] = 'Autoresponder';
-$wb['Mail Filter'] = 'Mail Filter';
-$wb['Custom Rules'] = 'Custom Rules';
-$wb['Email filter'] = 'Email filter';
-$wb['Email Whitelist'] = 'Email Whitelist';
-$wb['Whitelist'] = 'Whitelist';
-$wb['Spamfilter blacklist'] = 'Spamfilter blacklist';
-$wb['Blacklist'] = 'Blacklist';
-$wb['Spamfilter Config'] = 'Spamfilter Config';
-$wb['Server'] = 'Server';
-$wb['Spamfilter policy'] = 'Spamfilter policy';
-$wb['Policy'] = 'Policy';
-$wb['Quarantine'] = 'Quarantine';
-$wb['Tag-Level'] = 'Tag-Level';
-$wb['Other'] = 'Other';
-$wb['Spamfilter users'] = 'Spamfilter users';
-$wb['Users'] = 'Users';
-$wb['Spamfilter Whitelist'] = 'Spamfilter Whitelist';
-$wb['Whitelist'] = 'Whitelist';
-$wb['Email'] = 'Email';
-$wb['Email Mailbox'] = 'Email Mailbox';
-$wb['Email Accounts'] = 'Email Accounts';
-$wb['User / Domain'] = 'User / Domain';
-$wb['Server Settings'] = 'Server Settings';
-$wb['Spamfilter'] = 'Spamfilter';
-$wb['Fetchmail'] = 'Fetchmail';
-$wb['Mailbox traffic'] = 'Mailbox traffic';
-$wb['Statistics'] = 'Statistics';
-$wb['Postfix Whitelist'] = 'Postfix Whitelist';
-$wb['Postfix Blacklist'] = 'Postfix Blacklist';
-$wb['Content Filter'] = 'Content Filter';
-$wb['Global Filters'] = 'Global Filters';
-
-?>
---|mail|en|en_mail_alias.lng
-<?php
-$wb["email_txt"] = 'Email';
-$wb["destination_txt"] = 'Destination';
-$wb["active_txt"] = 'Active';
-$wb["email_error_isemail"] = 'Email address is invalid.';
-$wb["email_error_unique"] = 'Duplicate Emailaddress.';
-$wb["no_domain_perm"] = "You have no permission for this domain.";
-$wb["destination_error_isemail"] = 'Destination Emailaddress is invalid.';
-$wb["limit_mailalias_txt"] = 'The max. number of email aliases for your account is reached.';
-$wb["duplicate_mailbox_txt"] = 'There is already a mailbox with this email address';
-?>
---|mail|en|en_mail_aliasdomain.lng
-<?php
-$wb["source_txt"] = 'Source';
-$wb["destination_txt"] = 'Destination';
-$wb["active_txt"] = 'Active';
-$wb["no_domain_perm"] = "You have no permission for this domain.";
-$wb["limit_mailaliasdomain_txt"] = 'The max. number of email alias domains for your account is reached.';
-$wb["source_destination_identical_txt"] = 'Source and target Domain are the same.';
-$wb["source_error_empty"] = 'Source Domain is empty.';
-$wb["source_error_unique"] = 'Duplicate source Domain.';
-$wb["source_error_regex"] = 'Invalid source domain name.';
-?>
---|mail|en|en_mail_aliasdomain_list.lng
-<?php
-$wb["list_head_txt"] = 'Domain alias';
-$wb["active_txt"] = 'Active';
-$wb["source_txt"] = 'Source';
-$wb["destination_txt"] = 'Destination';
-$wb["source_txt"] = 'Source';
-$wb["add_new_record_txt"] = 'Add new Domain alias';
-?>
---|mail|en|en_mail_alias_list.lng
-<?php
-$wb["list_head_txt"] = 'Email Alias';
-$wb["active_txt"] = 'Active';
-$wb["source_txt"] = 'source';
-$wb["destination_txt"] = 'Destination';
-$wb["email_txt"] = 'Email';
-$wb["add_new_record_txt"] = 'Add new Email alias';
-?>
---|mail|en|en_mail_blacklist.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Blacklist Address';
-$wb["recipient_txt"] = 'Recipient';
-$wb["active_txt"] = 'Active';
-$wb["source_error_notempty"] = 'Address is empty.';
-$wb["type_txt"] = 'Type';
-$wb["limit_mailfilter_txt"] = 'The max. number of email filters for your account is reached.';
-?>
---|mail|en|en_mail_blacklist_list.lng
-<?php
-$wb["list_head_txt"] = 'Email Blacklist';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Blacklisted address';
-$wb["type_txt"] = 'Type';
-$wb["recipient_txt"] = 'Recipient';
-$wb["add_new_record_txt"] = 'Add new Blacklist record';
-$wb["access_txt"] = 'access';
-?>
---|mail|en|en_mail_content_filter.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["type_txt"] = 'Filter';
-$wb["pattern_txt"] = 'Regexp. Pattern';
-$wb["data_txt"] = 'Data';
-$wb["action_txt"] = 'Action';
-$wb["active_txt"] = 'Active';
-$wb["pattern_error_empty"] = 'Pattern is empty.';
-?>
---|mail|en|en_mail_content_filter_list.lng
-<?php
-$wb["list_head_txt"] = 'Postfix Header and Body Checks';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["pattern_txt"] = 'Pattern';
-$wb["action_txt"] = 'Action';
-$wb["add_new_record_txt"] = 'Add new Content Filter';
-?>
---|mail|en|en_mail_domain.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["type_txt"] = 'Type';
-$wb["active_txt"] = 'Active';
-$wb["domain_error_empty"] = 'Domain is empty.';
-$wb["domain_error_unique"] = 'Duplicate Domain.';
-$wb["domain_error_regex"] = 'Invalid domain name.';
-$wb["client_txt"] = 'Client';
-$wb["limit_maildomain_txt"] = 'The max. number of email domains for your account is reached.';
-$wb["policy_txt"] = 'Spamfilter';
-$wb["no_policy"] = '- not enabled -';
-?>
---|mail|en|en_mail_domain_catchall.lng
-<?php
-$wb["domain_txt"] = 'Domain';
-$wb["destination_txt"] = 'Destination';
-$wb["active_txt"] = 'Active';
-$wb["domain_error_unique"] = "There is already a Catchall record for this domain.";
-$wb["no_domain_perm"] = "You have no permission for this domain.";
-$wb["domain_error_regex"] = 'Invalid domain name od domain contains invalid characters.';
-$wb["limit_mailcatchall_txt"] = 'The max. number of email catchall accounts for your account is reached.';
-?>
---|mail|en|en_mail_domain_catchall_list.lng
-<?php
-$wb["list_head_txt"] = 'Email Catchall';
-$wb["active_txt"] = 'Active';
-$wb["source_txt"] = 'source';
-$wb["destination_txt"] = 'Destination email address';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new Catchall';
-?>
---|mail|en|en_mail_domain_list.lng
-<?php
-$wb["list_head_txt"] = 'Email Domain';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new Domain';
-$wb["active_txt"] = 'Active';
-?>
---|mail|en|en_mail_forward.lng
-<?php
-$wb["email_txt"] = 'Email';
-$wb["destination_txt"] = 'Destination Email';
-$wb["active_txt"] = 'Active';
-$wb["limit_mailforward_txt"] = 'The max. number of email forwarders for your account is reached.';
-$wb["duplicate_mailbox_txt"] = 'There is already a mailbox with this email address';
-?>
---|mail|en|en_mail_forward_list.lng
-<?php
-$wb["list_head_txt"] = 'Mail Forward';
-$wb["active_txt"] = 'Active';
-$wb["source_txt"] = 'source';
-$wb["destination_txt"] = 'Destination';
-$wb["email_txt"] = 'Email';
-$wb["add_new_record_txt"] = 'Add new Email forward';
-?>
---|mail|en|en_mail_get.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["type_txt"] = 'Type';
-$wb["source_server_txt"] = 'Pop3/Imap Server';
-$wb["source_username_txt"] = 'Username';
-$wb["source_password_txt"] = 'Password';
-$wb["source_delete_txt"] = 'Delete emails after retrieval';
-$wb["destination_txt"] = 'Destination';
-$wb["active_txt"] = 'Active';
-$wb["limit_fetchmail_txt"] = 'The max. number of Fetchmail records for your account is reached.';
-$wb["source_server_error_isempty"] = 'Server is empty.';
-$wb["source_username_error_isempty"] = 'Username is empty.';
-$wb["source_password_error_isempty"] = 'Password is empty.';
-$wb["destination_error_isemail"] = 'No destination selected.';
-?>
---|mail|en|en_mail_get_list.lng
-<?php
-$wb["list_head_txt"] = 'Fetch emails from external POP3 / IMAP servers';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["source_server_txt"] = 'External Server';
-$wb["source_username_txt"] = 'Username';
-$wb["destination_txt"] = 'Destination';
-$wb["add_new_record_txt"] = 'Add new Account';
-?>
---|mail|en|en_mail_relay_recipient.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Relay recipient';
-$wb["recipient_txt"] = 'Recipient';
-$wb["active_txt"] = 'Active';
-$wb["source_error_notempty"] = 'Address is empty.';
-$wb["type_txt"] = 'Type';
-$wb["limit_mailfilter_txt"] = 'The max. number of email filters for your account is reached.';
-?>
---|mail|en|en_mail_relay_recipient_list.lng
-<?php
-$wb["list_head_txt"] = 'Relay recipients';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Recipient address';
-$wb["recipient_txt"] = 'Recipient';
-$wb["add_new_record_txt"] = 'Add new relay recipient';
-$wb["access_txt"] = 'access';
-?>
---|mail|en|en_mail_spamfilter.lng
-<?php
-$wb["email_txt"] = 'Email';
-$wb["spam_rewrite_score_int_txt"] = 'Rewrite score';
-$wb["spam_redirect_score_int_txt"] = 'Redirect score';
-$wb["spam_delete_score_int_txt"] = 'Delete score';
-$wb["spam_rewrite_subject_txt"] = 'Rewrite subject';
-$wb["spam_redirect_maildir_txt"] = 'Redirect mailbox';
-$wb["active_txt"] = 'Active';
-$wb["spam_rewrite_txt"] = 'Rewrite email subject above this score.';
-$wb["spam_redirect_txt"] = 'Redirect email above this score to the selected mailbox.';
-$wb["spam_delete_txt"] = 'Delete email above this score.';
-$wb["disable_txt"] = 'Hint: To disable a filtering option, set the score to 0.00.';
-$wb["email_error_isemail"] = 'Email address is invalid.';
-$wb["email_error_unique"] = 'There is already an spamfilter record for this email address.';
-$wb["spam_redirect_maildir_purge_txt"] = 'Purge Maildir after';
-$wb["days_txt"] = 'Days.';
-?>
---|mail|en|en_mail_spamfilter_list.lng
-<?php
-$wb["list_head_txt"] = 'Spamfilter';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["server_name_txt"] = 'server_name';
-$wb["email_txt"] = 'Email';
-$wb["add_new_record_txt"] = 'Add new Spamfilter record';
-?>
---|mail|en|en_mail_transport.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["destination_txt"] = 'Destination';
-$wb["type_txt"] = 'Type';
-$wb["mx_txt"] = 'No MX lookup';
-$wb["sort_order_txt"] = 'Sort by';
-$wb["active_txt"] = 'Active';
-$wb["limit_mailrouting_txt"] = 'The max. number of routes for your account is reached.';
-?>
---|mail|en|en_mail_transport_list.lng
-<?php
-$wb["list_head_txt"] = 'Advanced Email Routing';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["transport_txt"] = 'Transport';
-$wb["sort_order_txt"] = 'Sort by';
-$wb["add_new_record_txt"] = 'Add new transport';
-?>
---|mail|en|en_mail_user.lng
-<?php
-$wb["custom_mailfilter_txt"] = 'Custom mail filter recipe';
-$wb["email_txt"] = 'Email';
-$wb["cryptpwd_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["active_txt"] = 'Active';
-$wb["email_error_isemail"] = 'Email address is invalid.';
-$wb["email_error_unique"] = 'Duplicate Email address.';
-$wb["autoresponder_text_txt"] = 'Text';
-$wb["autoresponder_txt"] = 'Autoresponder';
-$wb["no_domain_perm"] = 'You have no permission for this domain.';
-$wb["error_no_pwd"] = 'Password is empty.';
-$wb["quota_error_isint"] = 'Mailbox size must be a number.';
-$wb["quota_txt"] = 'Quota';
-$wb["server_id_txt"] = 'Aerver_id';
-$wb["password_txt"] = 'Password';
-$wb["maildir_txt"] = 'Maildir';
-$wb["postfix_txt"] = 'Enable Receiving';
-$wb["access_txt"] = 'Enable Access';
-$wb["policy_txt"] = 'Spamfilter';
-$wb["no_policy"] = '- not enabled -';
-$wb["limit_mailbox_txt"] = 'The max. number of mailboxes for your account is reached.';
-$wb["limit_mailquota_txt"] = 'The max space for mailboxes is reached. The max. available space in MB is';
-$wb["welcome_mail_fromname_txt"] = 'ISPConfig3';
-$wb["welcome_mail_fromemail_txt"] = "webmaster@localhost.tld";
-$wb["welcome_mail_subject"] = 'Welcome to your new email account.';
-$wb["welcome_mail_message"] = "Welcome to your new email account. Your webmaster.";
-$wb["disableimap_txt"] = 'Disable IMAP';
-$wb["disablepop3_txt"] = 'Disable POP3';
-$wb["duplicate_alias_or_forward_txt"] = 'There is already an alias or forwrd with this email address.';
-$wb["quota_error_value"] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1';
-$wb["move_junk_txt"] = 'Move Spam Emails to Junk directory';
-?>
-
---|mail|en|en_mail_user_filter.lng
-<?php
-$wb["rulename_txt"] = 'Name';
-$wb["action_txt"] = 'Action';
-$wb["target_txt"] = 'Folder';
-$wb["active_txt"] = 'Active';
-$wb["rulename_error_empty"] = 'Name is empty.';
-$wb["searchterm_is_empty"] = 'Search term is empty.';
-$wb["source_txt"] = 'Source';
-?>
---|mail|en|en_mail_user_filter_list.lng
-<?php
-$wb["rulename_txt"] = 'Name';
-$wb["add_new_record_txt"] = 'Add new Filter';
-$wb["page_txt"] = 'Page';
-$wb["page_of_txt"] = 'of';
-$wb["delete_confirmation"] = 'Do you really want to Delete the mailfilter?';
-?>
---|mail|en|en_mail_user_list.lng
-<?php
-$wb["list_head_txt"] = 'Mailbox';
-$wb["email_txt"] = 'Email';
-$wb["autoresponder_txt"] = 'Autoresponder';
-$wb["add_new_record_txt"] = 'Add new Mailbox';
-?>
---|mail|en|en_mail_user_stats_list.lng
-<?php
-$wb["list_head_txt"] = 'Mail traffic';
-$wb["email_txt"] = 'Email';
-$wb["this_month_txt"] = 'This month';
-$wb["last_month_txt"] = 'Last month';
-$wb["this_year_txt"] = 'This year';
-$wb["last_year_txt"] = 'Last year';
-?>
---|mail|en|en_mail_whitelist.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Witelist Address';
-$wb["recipient_txt"] = 'Recipient';
-$wb["active_txt"] = 'Active';
-$wb["source_error_notempty"] = 'Address is empty.';
-$wb["type_txt"] = 'Type';
-$wb["limit_mailfilter_txt"] = 'The max. number of email filters for your account is reached.';
-?>
---|mail|en|en_mail_whitelist_list.lng
-<?php
-$wb["list_head_txt"] = 'Email Whitelist';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["source_txt"] = 'Whitelisted address';
-$wb["type_txt"] = 'Type';
-$wb["recipient_txt"] = 'Recipient';
-$wb["add_new_record_txt"] = 'Add new Whitelist record';
-$wb["access_txt"] = 'access';
-?>
---|mail|en|en_spamfilter_blacklist.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["wb_txt"] = 'wb';
-$wb["rid_txt"] = 'User';
-$wb["email_txt"] = 'Email';
-$wb["priority_txt"] = 'Priority';
-$wb["active_txt"] = 'Active';
-$wb["limit_spamfilter_wblist_txt"] = 'The max. number of White- or Blacklist records for your account is reached.';
-?>
---|mail|en|en_spamfilter_blacklist_list.lng
-<?php
-$wb["list_head_txt"] = 'Spamfilter Blacklist';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["priority_txt"] = 'Priority';
-$wb["rid_txt"] = 'User';
-$wb["email_txt"] = 'Blacklisted Email';
-$wb["add_new_record_txt"] = 'Add Blacklist record';
-?>
---|mail|en|en_spamfilter_config.lng
-<?php
-$wb["getmail_config_dir_txt"] = 'Getmail Config Path';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["netmask_txt"] = 'Netmask';
-$wb["gateway_txt"] = 'Gateway';
-$wb["hostname_txt"] = 'Hostname';
-$wb["nameservers_txt"] = 'Nameservers';
-$wb["module_txt"] = 'Server Module';
-$wb["maildir_path_txt"] = 'Maildir Path';
-$wb["homedir_path_txt"] = 'Homedir Path';
-$wb["mailuser_uid_txt"] = 'Mailuser UID';
-$wb["mailuser_gid_txt"] = 'Mailuser GID';
-$wb["mailuser_name_txt"] = 'Mailuser Name';
-$wb["mailuser_group_txt"] = 'Mailuser Group';
-$wb["relayhost_txt"] = 'Relayhost';
-$wb["relayhost_user_txt"] = 'Relayhost User';
-$wb["relayhost_password_txt"] = 'Relayhost Password';
-$wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit';
-$wb["message_size_limit_txt"] = 'Message Size Limit';
-?>
---|mail|en|en_spamfilter_config_list.lng
-<?php
-$wb["list_head_txt"] = 'Server Configuration';
-$wb["server_name_txt"] = 'Server';
-$wb["server_id_txt"] = 'server_id';
-?>
---|mail|en|en_spamfilter_policy.lng
-<?php
-$wb["policy_name_txt"] = 'Policy Name';
-$wb["virus_lover_txt"] = 'Virusl lover';
-$wb["spam_lover_txt"] = 'SPAM lover';
-$wb["banned_files_lover_txt"] = 'Banned files lover';
-$wb["bad_header_lover_txt"] = 'Bad header lover';
-$wb["bypass_virus_checks_txt"] = 'Bypass virus checks';
-$wb["bypass_banned_checks_txt"] = 'Bypass banned checks';
-$wb["bypass_header_checks_txt"] = 'Bypass header checks';
-$wb["virus_quarantine_to_txt"] = 'Forward virus to email';
-$wb["spam_quarantine_to_txt"] = 'Forward spam to email';
-$wb["banned_quarantine_to_txt"] = 'Forward banned to email';
-$wb["bad_header_quarantine_to_txt"] = 'Forward bad header to email';
-$wb["clean_quarantine_to_txt"] = 'Forward clean to email';
-$wb["other_quarantine_to_txt"] = 'Forward other to email';
-$wb["spam_tag_level_txt"] = 'SPAM tag level';
-$wb["spam_tag2_level_txt"] = 'SPAM tag2 level';
-$wb["spam_kill_level_txt"] = 'SPAM kill level';
-$wb["spam_dsn_cutoff_level_txt"] = 'SPAM dsn cutoff level';
-$wb["spam_quarantine_cutoff_level_txt"] = 'SPAM quarantine cutoff level';
-$wb["spam_modifies_subj_txt"] = 'SPAM modifies subject';
-$wb["spam_subject_tag_txt"] = 'SPAM subject tag';
-$wb["spam_subject_tag2_txt"] = 'SPAM subject tag2';
-$wb["addr_extension_virus_txt"] = 'Addr. extension virus';
-$wb["addr_extension_spam_txt"] = 'Addr. extension SPAM';
-$wb["addr_extension_banned_txt"] = 'Addr. extension banned';
-$wb["addr_extension_bad_header_txt"] = 'Addr extension bad header';
-$wb["warnvirusrecip_txt"] = 'Warn virus recip.';
-$wb["warnbannedrecip_txt"] = 'Warn banned recip.';
-$wb["warnbadhrecip_txt"] = 'Warn bad header recip.';
-$wb["newvirus_admin_txt"] = 'Newvirus admin';
-$wb["virus_admin_txt"] = 'Virus admin';
-$wb["banned_admin_txt"] = 'Banned admin';
-$wb["bad_header_admin_txt"] = 'Bad header admin';
-$wb["spam_admin_txt"] = 'SPAM admin';
-$wb["message_size_limit_txt"] = 'Message size limit';
-$wb["banned_rulenames_txt"] = 'Banned rulenames';
-?>
---|mail|en|en_spamfilter_policy_list.lng
-<?php
-$wb["list_head_txt"] = 'Spamfilter Policy';
-$wb["policy_name_txt"] = 'Name';
-$wb["virus_lover_txt"] = 'Virus lover';
-$wb["spam_lover_txt"] = 'Spam lover';
-$wb["banned_files_lover_txt"] = 'Banned Files lover';
-$wb["bad_header_lover_txt"] = 'Bad Header lover';
-$wb["add_new_record_txt"] = 'Add Policy record';
-?>
---|mail|en|en_spamfilter_users.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["priority_txt"] = 'Priority';
-$wb["policy_id_txt"] = 'Policy';
-$wb["email_txt"] = 'Email (Pattern)';
-$wb["fullname_txt"] = 'Name';
-$wb["local_txt"] = 'Local';
-?>
---|mail|en|en_spamfilter_users_list.lng
-<?php
-$wb["list_head_txt"] = 'Spamfilter Users';
-$wb["local_txt"] = 'Local';
-$wb["server_id_txt"] = 'Server';
-$wb["priority_txt"] = 'Priority';
-$wb["policy_id_txt"] = 'Policy';
-$wb["fullname_txt"] = 'Name';
-$wb["email_txt"] = 'Email';
-$wb["add_new_record_txt"] = 'Add Spamfilter User';
-?>
---|mail|en|en_spamfilter_whitelist.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["wb_txt"] = 'wb';
-$wb["rid_txt"] = 'User';
-$wb["email_txt"] = 'Email';
-$wb["priority_txt"] = 'Priority';
-$wb["active_txt"] = 'Active';
-$wb["limit_spamfilter_wblist_txt"] = 'The max. number of White- or Blacklist records for your account is reached.';
-?>
---|mail|en|en_spamfilter_whitelist_list.lng
-<?php
-$wb["list_head_txt"] = 'Spamfilter Whitelist';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["priority_txt"] = 'Priority';
-$wb["rid_txt"] = 'User';
-$wb["email_txt"] = 'Whitelisted Email';
-$wb["add_new_record_txt"] = 'Add Whitelist record';
-?>
---|monitor|en|en.lng
-<?php
-$wb["Server online since"] = "Server online since";
-$wb["Users online"] = "Users Online";
-$wb["System load 1 minute"] = "System load 1 minute";
-$wb["System load 5 minutes"] = "System load 5 minutes";
-$wb["System load 15 minutes"] = "System load 15 minutes";
-$wb['Server Load'] = 'Server Load';
-$wb['Disk usage'] = 'Disk usage';
-$wb['Memory usage'] = 'Memory usage';
-$wb['no_data_serverload_txt'] = 'No data about the server load available at the moment. Please check again later.';
-$wb['no_data_memusage_txt'] = 'No data about the memory usage available at the moment. Please check again later.';
-$wb['no_data_diskusage_txt'] = 'No data about the disk usage available at the moment. Please check again later.';
-$wb['no_data_cpuinfo_txt'] = 'No data about the CPU available at the moment. Please check again later.';
-$wb['no_data_services_txt'] = 'No data about the services available at the moment. Please check again later.';
-$wb['no_data_updates_txt'] = 'No data about updates available at the moment. Please check again later.';
-$wb['no_data_raid_txt'] = 'No data about RAID available at the moment. Please check again later.';
-$wb['no_data_rkhunter_txt'] = 'No data about RKHunter available at the moment. Please check again later.';
-$wb['no_data_mailq_txt'] = 'No data Mailqueue available at the moment. Please check again later.';
-$wb['no_logdata_txt'] = 'No log data available at the moment. Please check again later.';
-$wb['Monitoring'] = 'Monitoring';
-$wb['Server to Monitor'] = 'Server to Monitor';
-$wb['Logfiles'] = 'Logfiles';
-$wb['Status of services'] = 'Status of services';
-$wb['No Refresh'] = 'No Refresh';
-$wb["minutes"] = "minutes";
-$wb["Show Overview"] = "Show Overview";
-$wb["System State (All Servers)"] = "System State (All Servers)";
-$wb['Hardware-Information'] = 'Hardware-Information';
-$wb['Show CPU info'] = 'Show CPU info';
-$wb['Server State'] = 'Server State';
-$wb['Show Update State'] = 'Show Update State';
-$wb['Show RAID state'] = 'Show RAID state';
-$wb['Show Server load'] = 'Show Server load';
-$wb['Show Disk usage'] = 'Show Disk usage';
-$wb['Show Memory usage'] = 'Show Memory usage';
-$wb['Show Services'] = 'Show Services';
-$wb['Show Mail-Queue'] = 'Show Mail-Queue';
-$wb['Show Mail-Log'] = 'Show Mail-Log';
-$wb['Show Mail warn-Log'] = 'Show Mail warn-Log';
-$wb['Show Mail err-Log'] = 'Show Mail err-Log';
-$wb['Show System-Log'] = 'Show System-Log';
-$wb['Show ISPC Cron-Log'] = 'Show ISPC Cron-Log';
-$wb['Show Freshclam-Log'] = 'Show Freshclam-Log';
-$wb['Show Clamav-Log'] = 'Show Clamav-Log';
-$wb['Show ISPConfig-Log'] = 'Show ISPConfig-Log';
-$wb['Show RKHunter-Log'] = 'Show RKHunter-Log';
-$wb['Show Jobqueue'] = 'Show Jobqueue';
-$wb['monitor_general_serverstate_txt'] = 'Server State';
-$wb['monitor_general_systemstate_txt'] = 'System State';
-$wb['monitor_diskusage_filesystem_txt'] = 'Filesystem';
-$wb['monitor_diskusage_type_txt'] = 'Type';
-$wb['monitor_diskusage_size_txt'] = 'Size';
-$wb['monitor_diskusage_used_txt'] = 'Used';
-$wb['monitor_diskusage_available_txt'] = 'Available';
-$wb['monitor_diskusage_usage_txt'] = 'Use%';
-$wb['monitor_diskusage_mounted_txt'] = 'Mounted on';
-$wb['monitor_logs_mail_txt'] = 'Mail - Log';
-$wb['monitor_logs_mailwarn_txt'] = 'Mail-Warn - Log';
-$wb['monitor_logs_mailerr_txt'] = 'Mail-Error - Log';
-$wb['monitor_logs_messages_txt'] = 'System Messages - Log';
-$wb['monitor_logs_ispccron_txt'] = 'ISPConfig Cron - Log';
-$wb['monitor_logs_freshclam_txt'] = 'Freshclam - Log';
-$wb['monitor_logs_clamav_txt'] = 'Clamav - Log';
-$wb['monitor_logs_ispc_txt'] = 'ISPConfig - Log';
-$wb['monitor_nomdadm_txt'] = 'mdadm is not installed or your Server has no supported RAID';
-$wb['monitor_norkhunter_txt'] = 'RKHunter is not installed, so there is no log data';
-$wb['monitor_serverstate_server_txt'] = 'Server';
-$wb['monitor_serverstate_state_txt'] = 'State';
-$wb['monitor_serverstate_unknown_txt'] = 'unknown';
-$wb['monitor_serverstate_info_txt'] = 'info';
-$wb['monitor_serverstate_warning_txt'] = 'warning';
-$wb['monitor_serverstate_critical_txt'] = 'critical';
-$wb['monitor_serverstate_error_txt'] = 'error';
-$wb['monitor_serverstate_moreinfo_txt'] = 'More information...';
-$wb['monitor_serverstate_more_txt'] = 'More...';
-$wb['monitor_serverstate_fclamok_txt'] = 'Your Virus-protection is ok';
-$wb['monitor_serverstate_fclamoutdated_txt'] = 'Your Virus-protection is OUTDATED!';
-$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!';
-$wb['monitor_serverstate_hdok_txt'] = 'The state of your Hard-Disk space is ok';
-$wb['monitor_serverstate_hdgoingfull_txt'] = 'Your Hard-Disk space is going full';
-$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Your Hard-Disk is nearly full';
-$wb['monitor_serverstate_hdveryfull_txt'] = 'Your Hard-Disk is very full';
-$wb['monitor_serverstate_hdfull_txt'] = 'Your Hard-Disk has no more space left';
-$wb['monitor_serverstate_hdunknown_txt'] = 'Hard-Disk: ???';
-$wb['monitor_serverstate_listok_txt'] = 'ok';
-$wb['monitor_serverstate_listinfo_txt'] = 'info';
-$wb['monitor_serverstate_listwarning_txt'] = 'warning';
-$wb['monitor_serverstate_listcritical_txt'] = 'critical';
-$wb['monitor_serverstate_listerror_txt'] = 'error';
-$wb['monitor_serverstate_listunknown_txt'] = 'unknown';
-$wb['monitor_serverstate_loadok_txt'] = 'Your Server load is ok';
-$wb['monitor_serverstate_loadheavy_txt'] = 'Your Server in under heavy load';
-$wb['monitor_serverstate_loadhigh_txt'] = 'Your Server in under high load';
-$wb['monitor_serverstate_loaghigher_txt'] = 'Your Server in under higher load';
-$wb['monitor_serverstate_loadhighest_txt'] = 'Your Server in under highest load';
-$wb['monitor_serverstate_loadunknown_txt'] = 'Server Load: ???';
-$wb['monitor_serverstate_mailqok_txt'] = 'Your Mailq load is ok';
-$wb['monitor_serverstate_mailqheavy_txt'] = 'Your Mailq in under heavy load';
-$wb['monitor_serverstate_mailqhigh_txt'] = 'Your Mailq in under high load';
-$wb['monitor_serverstate_mailqhigher_txt'] = 'Your Mailq in under higher load';
-$wb['monitor_serverstate_mailqhighest_txt'] = 'Your Mailq in under highest load';
-$wb['monitor_serverstate_mailqunknown_txt'] = 'Mailq: ???';
-$wb['monitor_serverstate_raidok_txt'] = 'Your RAID is ok';
-$wb['monitor_serverstate_raidresync_txt'] = 'Your RAID is in RESYNC mode';
-$wb['monitor_serverstate_raidfault_txt'] = 'Your RAID has one FAULT disk. Replace as soon as possible!';
-$wb['monitor_serverstate_raiderror_txt'] = 'Your RAID is not working anymore';
-$wb['monitor_serverstate_raidunknown_txt'] = 'RAID state: ???';
-$wb['monitor_serverstate_servicesonline_txt'] = 'All needed Services are online';
-$wb['monitor_serverstate_servicesoffline_txt'] = 'One or more needed Services are offline';
-$wb['monitor_serverstate_servicesunknown_txt'] = 'Services:???';
-$wb['monitor_serverstate_syslogok_txt'] = 'The System-Log is O.K.';
-$wb['monitor_serverstate_syslogwarning_txt'] = 'There are some warnings in your System-Log';
-$wb['monitor_serverstate_syslogerror_txt'] = 'There are errors in your System-Log';
-$wb['monitor_serverstate_syslogunknown_txt'] = 'sys-log:???';
-$wb['monitor_serverstate_updatesok_txt'] = 'Your System is up to date.';
-$wb['monitor_serverstate_updatesneeded_txt'] = 'One or more Components needs a update';
-$wb['monitor_serverstate_updatesunknown_txt'] = 'System-Update:???';
-$wb['monitor_services_online_txt'] = 'Online';
-$wb['monitor_services_offline_txt'] = 'Offline';
-$wb['monitor_services_web_txt'] = 'Web-Server:';
-$wb['monitor_services_ftp_txt'] = 'FTP-Server:';
-$wb['monitor_services_smtp_txt'] = 'SMTP-Server:';
-$wb['monitor_services_pop_txt'] = 'POP3-Server:';
-$wb['monitor_services_imap_txt'] = 'IMAP-Server:';
-$wb['monitor_services_mydns_txt'] = 'DNS-Server:';
-$wb['monitor_services_mysql_txt'] = 'mySQL-Server:';
-$wb['monitor_settings_datafromdate_txt'] = 'Data from: ';
-$wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i';
-$wb['monitor_settings_refreshsq_txt'] = 'Refresh sequence:';
-$wb['monitor_settings_server_txt'] = 'Server';
-$wb['monitor_title_cpuinfo_txt'] = 'CPU Info';
-$wb['monitor_title_updatestate_txt'] = 'Update State';
-$wb['monitor_title_mailq_txt'] = 'Mailqueue';
-$wb['monitor_title_raidstate_txt'] = 'RAID-State';
-$wb['monitor_title_rkhunterlog_txt'] = 'RKHunter-Log';
-$wb['monitor_updates_nosupport_txt'] = 'Your distribution is not supported for this monitoring';
-?>
-
---|monitor|en|en_datalog_list.lng
-<?php
-$wb["list_head_txt"] = 'Jobqueue';
-$wb["tstamp_txt"] = 'Date';
-$wb["server_id_txt"] = 'Server';
-$wb["dbtable_txt"] = 'DB Table';
-$wb["action_txt"] = 'Action';
-$wb["status_txt"] = 'Status';
-?>
---|monitor|en|en_syslog_list.lng
-<?php
-$wb["list_head_txt"] = 'ISPConfig Log';
-$wb["tstamp_txt"] = 'Date';
-$wb["server_id_txt"] = 'Server';
-$wb["loglevel_txt"] = 'Loglevel';
-$wb["message_txt"] = 'Message';
-?>
---|sites|en|en.lng
-<?php
-$wb['Database'] = 'Database';
-$wb['Options'] = 'Options';
-$wb['Shell User'] = 'Shell User';
-$wb['Domain'] = 'Website';
-$wb['Redirect'] = 'Redirect';
-$wb['SSL'] = 'SSL';
-$wb['Subdomain'] = 'Subdomain';
-$wb['Sites'] = 'Sites';
-$wb['Aliasdomain'] = 'Aliasdomain';
-$wb['FTP-User'] = 'FTP-User';
-$wb['FTP'] = 'FTP';
-$wb['Shell-User'] = 'Shell-User';
-$wb['Shell'] = 'Shell';
-$wb['Websites'] = 'Websites';
-$wb["Stats"] = 'Statistics';
-?>
---|sites|en|en_cron.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb['parent_domain_id_txt'] = 'Parent website';
-$wb['active_txt'] = 'Active';
-$wb['client_txt'] = 'Client';
-$wb['run_min_txt'] = 'Minutes';
-$wb['run_hour_txt'] = 'Hours';
-$wb['run_mday_txt'] = 'Days of month';
-$wb['run_month_txt'] = 'Months';
-$wb['run_wday_txt'] = 'Days of week';
-$wb['command_txt'] = 'Command to run (commands are executed via sh, urls via wget)';
-$wb['limit_cron_txt'] = 'The maximum number of allowed cron jobs was reached.';
-$wb['limit_cron_frequency_txt'] = 'The cron job frequency exceeds the allowed limit.';
-$wb['run_min_error_format'] = 'Invalid format for minutes.';
-$wb['run_hour_error_format'] = 'Invalid format for hours.';
-$wb['run_mday_error_format'] = 'Invalid format for days of month.';
-$wb['run_month_error_format'] = 'Invalid format for months.';
-$wb['run_wday_error_format'] = 'Invalid format for days of the week.';
-$wb['command_error_format'] = 'Invalid command format. Please note that in case of an url call only http/https is allowed.';
-$wb['unknown_fieldtype_error'] = 'An unknown field type has been used.';
-?>
---|sites|en|en_cron_list.lng
-<?php
-$wb["list_head_txt"] = 'Cron Jobs';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["run_min_txt"] = 'Minute';
-$wb["run_hour_txt"] = 'Hour';
-$wb["run_mday_txt"] = 'Day of month';
-$wb["run_month_txt"] = 'Month';
-$wb["run_wday_txt"] = 'Day of week';
-$wb["command_txt"] = 'Command';
-$wb["add_new_cron_txt"] = 'Add new Cron job';
-?>
---|sites|en|en_database.lng
-<?php
-$wb["server_id_txt"] = 'Server';
-$wb["type_txt"] = 'Type';
-$wb["database_name_txt"] = 'Database name';
-$wb["database_user_txt"] = 'Database user';
-$wb["database_password_txt"] = 'Database password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["database_charset_txt"] = 'Database charset';
-$wb["remote_access_txt"] = 'Remote Access';
-$wb["remote_ips_txt"] = 'Remote Access IPs (separate by , and leave blank for <i>any</i>)';
-$wb["database_remote_error_ips"] = 'At least one of the entered ip addresses is invalid.';
-$wb["client_txt"] = 'Client';
-$wb["active_txt"] = 'Active';
-$wb["database_name_error_empty"] = 'Database name is empty.';
-$wb["database_name_error_unique"] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domain name to the database name.';
-$wb["database_name_error_regex"] = 'Invalid database name. The database name may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
-$wb["database_user_error_empty"] = 'Database user is empty.';
-$wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.';
-$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
-$wb["limit_database_txt"] = 'The max. number of databases is reached.';
-$wb["database_name_change_txt"] = 'The database name can not be changed';
-$wb["database_charset_change_txt"] = 'The database charset can not be changed';
-$wb["database_name_error_len"] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.';
-$wb["database_user_error_len"] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.';
-?>
-
---|sites|en|en_database_list.lng
-<?php
-$wb["list_head_txt"] = 'Database';
-$wb["active_txt"] = 'Active';
-$wb["remote_access_txt"] = 'Remote Access';
-$wb["server_id_txt"] = 'Server';
-$wb["database_name_txt"] = 'Database name';
-$wb["add_new_record_txt"] = 'Add new Database';
-?>
---|sites|en|en_ftp_user.lng
-<?php
-$wb["uid_txt"] = 'UID';
-$wb["gid_txt"] = 'GID';
-$wb["dir_txt"] = 'Directory';
-$wb["quota_files_txt"] = 'Filequota';
-$wb["quota_files_unity_txt"] = 'Files';
-$wb["ul_ratio_txt"] = 'Uploadratio';
-$wb["dl_ratio_txt"] = 'Downloadratio';
-$wb["ul_bandwidth_txt"] = 'Uploadbandwidth';
-$wb["dl_bandwidth_txt"] = 'Downloadbandwidth';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Website';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["quota_size_txt"] = 'Harddisk-Quota';
-$wb["active_txt"] = 'Active';
-$wb["limit_ftp_user_txt"] = 'The max. number of FTP users for your account is reached.';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["username_error_regex"] = 'The username contains charachters that are not allowed.';
-$wb["quota_size_error_empty"] = 'Quota is empty.';
-$wb["uid_error_empty"] = 'UID empty.';
-$wb["uid_error_empty"] = 'GID empty.';
-$wb["directory_error_empty"] = 'Directory empty.';
-$wb['directory_error_notinweb'] = 'Directory not inside of web root directory.';
-$wb["parent_domain_id_error_empty"] = 'No website selected.';
-?>
-
---|sites|en|en_ftp_user_list.lng
-<?php
-$wb["list_head_txt"] = 'FTP-User';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Website';
-$wb["username_txt"] = 'Username';
-$wb["add_new_record_txt"] = 'Add new FTP-User';
-?>
---|sites|en|en_shell_user.lng
-<?php
-$wb["uid_txt"] = 'Web Username';
-$wb["gid_txt"] = 'Group';
-$wb["shell_txt"] = 'Shell';
-$wb["dir_txt"] = 'Dir';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Site';
-$wb["username_txt"] = 'Username';
-$wb["password_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["chroot_txt"] = 'Chroot Shell';
-$wb["quota_size_txt"] = 'Quota';
-$wb["active_txt"] = 'Active';
-$wb["username_error_empty"] = 'Username is empty.';
-$wb["username_error_unique"] = 'The username must be unique.';
-$wb["username_error_regex"] = 'The username contains charachters that are not allowed.';
-$wb["quota_size_error_empty"] = 'Quota is empty.';
-$wb["uid_error_empty"] = 'UID empty.';
-$wb["uid_error_empty"] = 'GID empty.';
-$wb["directory_error_empty"] = 'Directory empty.';
-$wb["limit_shell_user_txt"] = 'The max number of shell users is reached.';
-$wb["parent_domain_id_error_empty"] = 'No website selected.';
-?>
-
---|sites|en|en_shell_user_list.lng
-<?php
-$wb["list_head_txt"] = 'Shell User';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Site';
-$wb["username_txt"] = 'Username';
-$wb["add_new_record_txt"] = 'Add new Shell-User';
-?>
---|sites|en|en_web_aliasdomain_list.lng
-<?php
-$wb["list_head_txt"] = 'Aliasdomain';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Website';
-$wb["domain_txt"] = 'Aliasdomain';
-$wb["add_new_record_txt"] = 'Add new aliasdomain';
-$wb["domain_error_empty"] = 'Domain is empty.';
-$wb["domain_error_unique"] = 'Domain must be unique.';
-$wb["domain_error_regex"] = 'Domain name invalid.';
-?>
---|sites|en|en_web_domain.lng
-<?php
-$wb["ssl_state_txt"] = 'State';
-$wb["ssl_locality_txt"] = 'Locality';
-$wb["ssl_organisation_txt"] = 'Organisation';
-$wb["ssl_organisation_unit_txt"] = 'Organisation Unit';
-$wb["ssl_country_txt"] = 'Country';
-$wb["ssl_request_txt"] = 'SSL Request';
-$wb["ssl_cert_txt"] = 'SSL Certificate';
-$wb["ssl_bundle_txt"] = 'SSL Bundle';
-$wb["ssl_action_txt"] = 'SSL Action';
-$wb["ssl_domain_txt"] = 'SSL Domain';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["type_txt"] = 'Type';
-$wb["parent_domain_id_txt"] = 'Parent Website';
-$wb["redirect_type_txt"] = 'Redirect Type';
-$wb["redirect_path_txt"] = 'Redirect Path';
-$wb["active_txt"] = 'Active';
-$wb["document_root_txt"] = 'Documentroot';
-$wb["system_user_txt"] = 'Linux User';
-$wb["system_group_txt"] = 'Linux Group';
-$wb["ip_address_txt"] = 'IP-Address';
-$wb["vhost_type_txt"] = 'VHost Type';
-$wb["hd_quota_txt"] = 'Harddisk Quota';
-$wb["traffic_quota_txt"] = 'Traffic Quota';
-$wb["cgi_txt"] = 'CGI';
-$wb["ssi_txt"] = 'SSI';
-$wb["errordocs_txt"] = 'Own Error-Documents';
-$wb["subdomain_txt"] = 'Auto-Subdomain';
-$wb["ssl_txt"] = 'SSL';
-$wb["suexec_txt"] = 'SuEXEC';
-$wb["php_txt"] = 'PHP';
-$wb["client_txt"] = 'Client';
-$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.';
-$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.';
-$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.';
-$wb["apache_directives_txt"] = 'Apache directives';
-$wb["domain_error_empty"] = 'Domain is empty.';
-$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb["domain_error_regex"] = 'Domain name invalid.';
-$wb["hd_quota_error_empty"] = 'Harddisk quota is empty.';
-$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb["client_group_id_txt"] = 'Client';
-$wb["stats_password_txt"] = 'Webstatistics password';
-$wb["allow_override_txt"] = 'Allow Override';
-$wb["limit_web_quota_free_txt"] = 'Max. available Harddisk Quota';
-?>
-
---|sites|en|en_web_domain_list.lng
-<?php
-$wb["list_head_txt"] = 'Websites';
-$wb["domain_id_txt"] = 'ID';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new website';
-?>
---|sites|en|en_web_sites_stats_list.lng
-<?php
-$wb["list_head_txt"] = 'Web traffic';
-$wb["domain_txt"] = 'Domain';
-$wb["this_month_txt"] = 'This month';
-$wb["last_month_txt"] = 'Last month';
-$wb["this_year_txt"] = 'This year';
-$wb["last_year_txt"] = 'Last year';
-?>
---|sites|en|en_web_subdomain.lng
-<?php
-$wb["ssl_state_txt"] = 'State';
-$wb["ssl_locality_txt"] = 'Locality';
-$wb["ssl_organisation_txt"] = 'Organisation';
-$wb["ssl_organisation_unit_txt"] = 'Organisation Unit';
-$wb["ssl_country_txt"] = 'Country';
-$wb["ssl_request_txt"] = 'SSL Request';
-$wb["ssl_cert_txt"] = 'SSL Certificate';
-$wb["ssl_bundle_txt"] = 'SSL Bundle';
-$wb["ssl_action_txt"] = 'SSL Action';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["type_txt"] = 'Type';
-$wb["parent_domain_id_txt"] = 'Parent Website';
-$wb["redirect_type_txt"] = 'Redirect Type';
-$wb["redirect_path_txt"] = 'Redirect Path';
-$wb["active_txt"] = 'Active';
-$wb["document_root_txt"] = 'Documentroot';
-$wb["system_user_txt"] = 'Linux User';
-$wb["system_group_txt"] = 'Linux Group';
-$wb["ip_address_txt"] = 'IP-Address';
-$wb["vhost_type_txt"] = 'VHost Type';
-$wb["hd_quota_txt"] = 'Harddisk Quota';
-$wb["traffic_quota_txt"] = 'Traffic Quaota';
-$wb["cgi_txt"] = 'CGI';
-$wb["ssi_txt"] = 'SSI';
-$wb["ssl_txt"] = 'SSL';
-$wb["suexec_txt"] = 'SuEXEC';
-$wb["php_txt"] = 'PHP';
-$wb["client_txt"] = 'Client';
-$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.';
-$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.';
-$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.';
-$wb["apache_directives_txt"] = 'Apache directives';
-$wb["domain_error_empty"] = 'Domain is empty.';
-$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb["domain_error_regex"] = 'Domain name invalid.';
-$wb["host_txt"] = 'Host';
-?>
---|sites|en|en_web_subdomain_list.lng
-<?php
-$wb["list_head_txt"] = 'Subdomains';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["parent_domain_id_txt"] = 'Website';
-$wb["domain_txt"] = 'Subdomain';
-$wb["add_new_record_txt"] = 'Add new subdomain';
-?>
---|strengthmeter|en|en_strengthmeter.lng
-<?php
-$wb['password_strength_0_txt'] = 'Too short';
-$wb['password_strength_1_txt'] = 'Weak';
-$wb['password_strength_2_txt'] = 'Fair';
-$wb['password_strength_3_txt'] = 'Good';
-$wb['password_strength_4_txt'] = 'Strong';
-$wb['password_strength_5_txt'] = 'Very strong';
-?>
-
---|tools|en|en.lng
-<?php
-$wb['User Settings'] = 'User Settings';
-$wb['Settings'] = 'Settings';
-$wb['ISPConfig Tools'] = 'ISPConfig Tools';
-$wb['Password and Language'] = 'Password and Language';
-?>
---|tools|en|en_usersettings.lng
-<?php
-$wb["passwort_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["language_txt"] = 'Language';
-$wb["password_mismatch"] = 'The password in the second password field does not match the first password.';
-$wb["Form to edit the user password and language."] = 'Form to edit the user password and language.';
-$wb["Settings"] = 'Settings';
-?>
-
----|EOF
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/it_usersettings.lng b/interface/web/tools/lib/lang/it_usersettings.lng
index 95bf88af36..d81e53cc3e 100644
--- a/interface/web/tools/lib/lang/it_usersettings.lng
+++ b/interface/web/tools/lib/lang/it_usersettings.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['passwort_txt'] = 'Password';
 $wb['language_txt'] = 'Lingua';
-$wb['password_mismatch'] = 'Il secondo campo password non corrisponde non il primo.';
-$wb['Form to edit the user password and language.'] = 'Form per modificare la password e la lingua dell`utente.';
+$wb['password_mismatch'] = 'Il secondo campo password non corrisponde con il primo.';
+$wb['Form to edit the user password and language.'] = 'Form per modificare la password e la lingua dellutente.';
 $wb['Settings'] = 'Impostazioni';
 $wb['password_strength_txt'] = 'Sicurezza della Password';
 ?>
diff --git a/interface/web/vm/lib/lang/de_openvz_template.lng b/interface/web/vm/lib/lang/de_openvz_template.lng
index bedcfd23aa..8160832658 100644
--- a/interface/web/vm/lib/lang/de_openvz_template.lng
+++ b/interface/web/vm/lib/lang/de_openvz_template.lng
@@ -30,7 +30,7 @@ $wb['diskspace_txt'] = 'Festplattenplatz';
 $wb['ram_txt'] = 'RAM (garantiert)';
 $wb['ram_burst_txt'] = 'RAM (burst)';
 $wb['cpu_units_txt'] = 'CPU Units';
-$wb['cpu_num_txt'] = 'CPU Cores';
+$wb['cpu_num_txt'] = 'CPU Anzahl';
 $wb['cpu_limit_txt'] = 'CPU Limit %';
 $wb['io_priority_txt'] = 'I/O Priorit&auml;t';
 $wb['active_txt'] = 'Aktiv';
diff --git a/interface/web/vm/lib/lang/de_openvz_vm.lng b/interface/web/vm/lib/lang/de_openvz_vm.lng
index ff3265e489..5880ce4cf3 100644
--- a/interface/web/vm/lib/lang/de_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/de_openvz_vm.lng
@@ -4,7 +4,7 @@ $wb['ram_txt'] = 'RAM (garantiert)';
 $wb['ram_burst_txt'] = 'RAM (burst)';
 $wb['cpu_units_txt'] = 'CPU Units';
 $wb['cpu_num_txt'] = 'CPU Anzahl';
-$wb['cpu_limit_txt'] = 'CPU Limit';
+$wb['cpu_limit_txt'] = 'CPU Limit %';
 $wb['io_priority_txt'] = 'I/O Priorit&auml;t';
 $wb['nameserver_txt'] = 'Nameserver';
 $wb['nameserver_desc_txt'] = '(getrennt durch Leerzeichen)';
diff --git a/interface/web/vm/lib/lang/en_openvz_template.lng b/interface/web/vm/lib/lang/en_openvz_template.lng
index 50e731693d..e52165b996 100644
--- a/interface/web/vm/lib/lang/en_openvz_template.lng
+++ b/interface/web/vm/lib/lang/en_openvz_template.lng
@@ -30,7 +30,7 @@ $wb["diskspace_txt"] = 'Diskspace';
 $wb["ram_txt"] = 'RAM (guaranteed)';
 $wb["ram_burst_txt"] = 'RAM (burst)';
 $wb["cpu_units_txt"] = 'CPU units';
-$wb["cpu_num_txt"] = 'CPU cores';
+$wb["cpu_num_txt"] = 'CPU number';
 $wb["cpu_limit_txt"] = 'CPU limit %';
 $wb["io_priority_txt"] = 'I/O priority';
 $wb["active_txt"] = 'Active';
diff --git a/interface/web/vm/lib/lang/en_openvz_vm.lng b/interface/web/vm/lib/lang/en_openvz_vm.lng
index 54851ff291..ddd9903ced 100644
--- a/interface/web/vm/lib/lang/en_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/en_openvz_vm.lng
@@ -4,7 +4,7 @@ $wb["ram_txt"] = 'RAM (guaranteed)';
 $wb["ram_burst_txt"] = 'RAM (burst)';
 $wb["cpu_units_txt"] = 'CPU units';
 $wb["cpu_num_txt"] = 'CPU number';
-$wb["cpu_limit_txt"] = 'CPU limit';
+$wb["cpu_limit_txt"] = 'CPU limit %';
 $wb["io_priority_txt"] = 'I/O priority';
 $wb["nameserver_txt"] = 'Nameserver(s)';
 $wb["nameserver_desc_txt"] = '(separated by whitespace)';
diff --git a/interface/web/vm/openvz_vm_edit.php b/interface/web/vm/openvz_vm_edit.php
index 4efceca4d5..eefe4f0e6f 100644
--- a/interface/web/vm/openvz_vm_edit.php
+++ b/interface/web/vm/openvz_vm_edit.php
@@ -104,10 +104,10 @@ class page_action extends tform_actions {
 			$records = $app->db->queryAllRecords($sql);
 			$tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']);
 			$client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>';
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($records)) {
 				foreach( $records as $rec) {
-					$selected = @($rec["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$rec[groupid]' $selected>$rec[name]</option>\r\n";
 				}
 			}
@@ -135,10 +135,10 @@ class page_action extends tform_actions {
 			$sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			//$tmp_data_record = $app->tform->getDataRecord($this->id);
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
 				}
 			}
diff --git a/interface/web/vm/templates/openvz_ip_edit.htm b/interface/web/vm/templates/openvz_ip_edit.htm
index 97ce3893bf..bbd3c847ae 100644
--- a/interface/web/vm/templates/openvz_ip_edit.htm
+++ b/interface/web/vm/templates/openvz_ip_edit.htm
@@ -17,7 +17,7 @@
 			</div>
       <div class="ctrlHolder">
       	<label for="vm_id">{tmpl_var name='vm_id_txt'}</label>
-        <select name="vm_id" id="vm_id" class="selectInput">
+        <select name="vm_id" id="vm_id" class="selectInput" disabled="disabled">
 					{tmpl_var name='vm_id'}
 				</select>
       </div>
@@ -38,3 +38,9 @@
   </div>
   
 </div>
+<script language="JavaScript" type="text/javascript">
+		var vm_id = jQuery('#vm_id').val();
+		jQuery('#vm_id').attr({name: 'vm_id_disabled', id: 'vm_id_disabled'});
+		jQuery('#vm_id_disabled').after('<input type="hidden" name="vm_id" value="'+vm_id+'">');
+			
+</script>
\ No newline at end of file
diff --git a/remoting_client/examples/sites_web_domain_add.php b/remoting_client/examples/sites_web_domain_add.php
index ba0cfea18f..2905db0a0e 100644
--- a/remoting_client/examples/sites_web_domain_add.php
+++ b/remoting_client/examples/sites_web_domain_add.php
@@ -21,12 +21,9 @@ try {
 			'server_id' => 0,
 			'ip_address' => '',
 			'domain' => 'test2.int',
-			'type' => '',
+			'type' => 'vhost',
 			'parent_domain_id' => 0,
-			'vhost_type' => '',
-			'document_root' => '/web/dom',
-			'system_user' => 'benutzer',
-			'system_group' => 'gruppe',
+			'vhost_type' => 'name',
 			'hd_quota' => 100000,
 			'traffic_quota' => -1,
 			'cgi' => 'y',
@@ -54,7 +51,7 @@ try {
 			'stats_type' => 'webalizer',
 			'allow_override' => 'All',
 			'apache_directives' => '',
-			'php_open_basedir' => '/php',
+			'php_open_basedir' => '/',
 			'custom_php_ini' => '',
 			'backup_interval' => '',
 			'backup_copies' => 1,
diff --git a/server/conf/awstats_index.php.master b/server/conf/awstats_index.php.master
index 90cf909214..00175e7a91 100644
--- a/server/conf/awstats_index.php.master
+++ b/server/conf/awstats_index.php.master
@@ -16,7 +16,12 @@ if ($handle = opendir('.'))
         {
                 if (substr($file,0,1) != "." && is_dir($file))
                 {
-                        $awprev[] = $file;
+                        $orderkey = substr($file,0,4).substr($file,5,2);
+                        if (substr($file,5,2) < 10 )
+                        {
+                                $orderkey = substr($file,0,4)."0".substr($file,5,2);
+                        }
+                        $awprev[$orderkey] = $file;
                 }
         }
 
@@ -25,15 +30,16 @@ if ($handle = opendir('.'))
 
         if (date("d") == 1)
         {
-                $awmonth = date("m")-1;
+                $month = date("m")-1;
                 if (date("m") == 1)
                 {
-                        $awyear = date("Y")-1;
-                        $awmonth = "12";
+                        $year = date("Y")-1;
+                        $month = "12";
                 }
         }
 
-        $awprev[] = $year."-".$month;
+        $current = $year.$month;
+        $awprev[$current] = $year."-".$month;
 
         closedir($handle);
 }
@@ -41,11 +47,11 @@ if ($handle = opendir('.'))
 echo '<div style="width: 97%; margin-left: 4px; height: 20px; background-color: #FFFFFF; position: fixed; padding: 7px; border: 2px solid #cccccc;><div align="left"><font color="#000000" size="2" face="Verdana, Arial, Helvetica,  sans-serif">' .$aw["aw_jump_text"]. '</font </div>';
 
 echo "<select name='awdate' onchange=\"load_content(this.value)\">";
-rsort($awprev);
+krsort($awprev);
 
 foreach ($awprev as $key => $value)
 {
-        if($key == 0)
+        if($key == $current)
         {
                 echo "<option selected=\"selected\" value=\"".$aw['aw_renamed_index']."\"> $value</option>";
         }
diff --git a/server/conf/bind_pri.domain.master b/server/conf/bind_pri.domain.master
index ae0c4615ae..279fbac351 100644
--- a/server/conf/bind_pri.domain.master
+++ b/server/conf/bind_pri.domain.master
@@ -4,7 +4,7 @@ $TTL        {tmpl_var name='ttl'}
                         {tmpl_var name='refresh'}              ; refresh, seconds
                         {tmpl_var name='retry'}              ; retry, seconds
                         {tmpl_var name='expire'}              ; expire, seconds
-                        {tmpl_var name='ttl'} )            ; minimum, seconds
+                        {tmpl_var name='minimum'} )            ; minimum, seconds
 ;
 
 <tmpl_loop name='zones'>
diff --git a/server/conf/error/hr/400.html b/server/conf/error/hr/400.html
new file mode 100644
index 0000000000..b0cf253039
--- /dev/null
+++ b/server/conf/error/hr/400.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 400 - Bad Request!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status4xx">
+            <h1>GREÅ KA 400 - Neispravan zahtjev!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Koristili ste neispravnu sintaksu.</p>
+			<P>Molimo vas kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//--> ukoliko imate pitanja.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/401.html b/server/conf/error/hr/401.html
new file mode 100644
index 0000000000..c0afe60b28
--- /dev/null
+++ b/server/conf/error/hr/401.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 401 - Unauthorized!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status4xx">
+            <h1>GREÅ KA 401 - Zabranjen pristup!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Web stranica (URL) zahtijeva autorizaciju.</p>
+			<P>Molimo vas kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//--> ukoliko imate pitanja.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/403.html b/server/conf/error/hr/403.html
new file mode 100644
index 0000000000..01e29222de
--- /dev/null
+++ b/server/conf/error/hr/403.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 403 - Forbidden!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status4xx">
+            <h1>GREÅ KA 403 - Zabranjeno!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Nemate dozvolu za pristupanje ovoj web stranici (URL-u).</p>
+			<P>Molimo vas kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//--> ukoliko imate pitanja.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/404.html b/server/conf/error/hr/404.html
new file mode 100644
index 0000000000..514a853094
--- /dev/null
+++ b/server/conf/error/hr/404.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 404 - Not Found!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status4xx">
+            <h1>GREÅ KA 404 - Stranica ne postoji!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Web stranica (URL) nije pronađena na ovom serveru.</p>
+			<P>Provjerite da li je URL ispravan ili kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//-->.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/405.html b/server/conf/error/hr/405.html
new file mode 100644
index 0000000000..3c5d1c0702
--- /dev/null
+++ b/server/conf/error/hr/405.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 405 - Method Not Allowed!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status4xx">
+            <h1>GREŠKA 405 - Nedopuštena metoda!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Korištena metoda nije dopuštena.</p>
+			<P>Molimo vas kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//--> ukoliko imate pitanja.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/500.html b/server/conf/error/hr/500.html
new file mode 100644
index 0000000000..16cd1b3168
--- /dev/null
+++ b/server/conf/error/hr/500.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 500 - Internal Server Error!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status5xx">
+            <h1>GREŠKA 500 - Interna greška servera!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Web stranica (URL) je prouzročila internu grešku servera.</p>
+			<P>Ukoliko se ova poruka ponavlja kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//-->.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/502.html b/server/conf/error/hr/502.html
new file mode 100644
index 0000000000..09bf407141
--- /dev/null
+++ b/server/conf/error/hr/502.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 502 - Bad Gateway!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status5xx">
+            <h1>GREÅ KA 502 - Neispravan gateway!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Ovaj server je primio neispravan zahtjev od drugog servera kojemu je pristupio za ispunjenje zahtjeva.</p>
+			<P>Ukoliko se ova poruka ponavlja kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//-->.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/error/hr/503.html b/server/conf/error/hr/503.html
new file mode 100644
index 0000000000..3d0be8391e
--- /dev/null
+++ b/server/conf/error/hr/503.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>GREÅ KA 503 - Service Unavailable!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="noindex" />
+    <style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header {
+        padding: 6px ;
+        text-align: center;
+    }
+    .status3xx { background-color: #475076; color: #FFFFFF; }
+    .status4xx { background-color: #C55042; color: #FFFFFF; }
+    .status5xx { background-color: #F2E81A; color: #000000; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="status5xx">
+            <h1>GREÅ KA 503 - Usluga je nedostupna!</h1>
+        </div>
+        <div id="content">
+            <h2>Dogodila se slijedeća greška:</h2>
+            <p>Usluga trenutno nije dostupna zbog privremenog opterećenja ili održavanja servera. Pokušajte ponovno kasnije.</p>
+			<P>Molimo vas kontaktirajte <!--WEBMASTER//-->webmajstora<!--WEBMASTER//--> ukoliko imate pitanja.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/index/standard_index.html_hr b/server/conf/index/standard_index.html_hr
new file mode 100644
index 0000000000..2960aa1d4f
--- /dev/null
+++ b/server/conf/index/standard_index.html_hr
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>Welcome!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <link rel="shortcut icon" href="/favicon.ico" />
+    <meta name="robots" content="noindex" />
+	<style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header{
+        padding: 6px ;
+        text-align: center;
+    }
+    .header{ background-color: #83A342; color: #FFFFFF; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="header">
+            <h1>Dobrodošli na <!--ADRESSE//-->vašu web stranicu!<!--ADRESSE//--></h1>
+        </div>
+        <div id="content">
+            <h2>Ovo je standardna index stranica vaše web stranice.</h2>
+            <p>Ova datoteka može biti obrisana ili zamijenjena bez ikakvih poteškoća. Ovo je prikaz <b>index.html</b> datoteke u vašem <b>web</b> direktoriju.</p>
+            <p>Za sva pitanja ili probleme molimo vas kontaktirajte <!--SUPPORT//-->podršku<!--SUPPORT//-->.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/index/user_standard_index.html_hr b/server/conf/index/user_standard_index.html_hr
new file mode 100644
index 0000000000..4459e8d1f8
--- /dev/null
+++ b/server/conf/index/user_standard_index.html_hr
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+    <title>Welcome!</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <link rel="shortcut icon" href="/favicon.ico" />
+    <meta name="robots" content="noindex" />
+	<style type="text/css"><!--
+    body {
+        color: #444444;
+        background-color: #EEEEEE;
+        font-family: 'Trebuchet MS', sans-serif;
+        font-size: 80%;
+    }
+    h1 {}
+    h2 { font-size: 1.2em; }
+    #page{
+        background-color: #FFFFFF;
+        width: 60%;
+        margin: 24px auto;
+        padding: 12px;
+    }
+    #header{
+        padding: 6px ;
+        text-align: center;
+    }
+    .header{ background-color: #83A342; color: #FFFFFF; }
+    #content {
+        padding: 4px 0 24px 0;
+    }
+    #footer {
+        color: #666666;
+        background: #f9f9f9;
+        padding: 10px 20px;
+        border-top: 5px #efefef solid;
+        font-size: 0.8em;
+        text-align: center;
+    }
+    #footer a {
+        color: #999999;
+    }
+    --></style>
+</head>
+<body>
+    <div id="page">
+        <div id="header" class="header">
+            <h1>Dobrodošli na <!--ADRESSE//-->vašu web stranicu!<!--ADRESSE//--></h1>
+        </div>
+        <div id="content">
+            <h2>Ovo je standardna index stranica za korisničko ime <b>{USER_USERNAME}</b>.</h2>
+            <p>Ova datoteka može biti obrisana ili zamijenjena bez ikakvih poteškoća. Ovo je prikaz <b>index.html</b> datoteke u <b>user/{USER_USERNAME}/web</b> direktoriju.</p>
+            <p>Za sva pitanja ili probleme molimo vas kontaktirajte <!--SUPPORT//-->podršku<!--SUPPORT//-->.</p>
+        </div>
+        <div id="footer">
+            <p>Pokreće <a href="http://www.ispconfig.org">ISPConfig</a></p>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/server/conf/mail/welcome_email_hr.txt b/server/conf/mail/welcome_email_hr.txt
new file mode 100644
index 0000000000..f10c93b8bf
--- /dev/null
+++ b/server/conf/mail/welcome_email_hr.txt
@@ -0,0 +1,4 @@
+From: ISPConfig <postmaster@localhost.localdomain>
+Subject: Dobrodošli u vaš novi email račun.
+
+Dobrodošli u vaš novi email račun. Vaš webmajstor.
\ No newline at end of file
diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master
index c7e58a3a2c..9de75dde6d 100644
--- a/server/conf/nginx_apps.vhost.master
+++ b/server/conf/nginx_apps.vhost.master
@@ -38,9 +38,15 @@ server {
                        try_files $uri =404;
                        root /usr/share/;
                        include /etc/nginx/fastcgi_params;
-                       fastcgi_pass unix:{fpm_socket};
+                       # To access phpMyAdmin, the default user (like www-data on Debian/Ubuntu) must be used
+                       fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
+                       fastcgi_param PATH_INFO $fastcgi_script_name;
+                       fastcgi_buffer_size 128k;
+                       fastcgi_buffers 256 4k;
+                       fastcgi_busy_buffers_size 256k;
+                       fastcgi_temp_file_write_size 256k;
                }
                location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;
@@ -57,9 +63,15 @@ server {
                        try_files $uri =404;
                        root /usr/share/;
                        include /etc/nginx/fastcgi_params;
-                       fastcgi_pass unix:{fpm_socket};
+                       # To access SquirrelMail, the default user (like www-data on Debian/Ubuntu) must be used
+                       fastcgi_pass 127.0.0.1:9000;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
+                       fastcgi_param PATH_INFO $fastcgi_script_name;
+                       fastcgi_buffer_size 128k;
+                       fastcgi_buffers 256 4k;
+                       fastcgi_busy_buffers_size 256k;
+                       fastcgi_temp_file_write_size 256k;
                }
                location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                        root /usr/share/;
@@ -68,4 +80,24 @@ server {
         location /webmail {
                rewrite ^/* /squirrelmail last;
         }
+
+        location /cgi-bin/mailman {
+               root /usr/lib/;
+               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
+               include /etc/nginx/fastcgi_params;
+               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+               fastcgi_param PATH_INFO $fastcgi_path_info;
+               fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
+               fastcgi_intercept_errors on;
+               fastcgi_pass unix:{cgi_socket};
+        }
+
+        location /images/mailman {
+               alias /usr/share/images/mailman;
+        }
+
+        location /pipermail {
+               alias /var/lib/mailman/archives/public;
+               autoindex on;
+        }
 }
\ No newline at end of file
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index 4027b56377..25e544d969 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -111,5 +111,13 @@ server {
 
 <tmpl_loop name="nginx_directives">
         <tmpl_var name='nginx_directive'>
-</tmpl_loop>	
+</tmpl_loop>
+
+<tmpl_loop name="basic_auth_locations">
+        location ^~ <tmpl_var name='htpasswd_location'> {
+                auth_basic "Members Only";
+                auth_basic_user_file <tmpl_var name='htpasswd_path'>.htpasswd;
+        }
+</tmpl_loop>
+	
 }
\ No newline at end of file
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 410d44d9c5..ae1287dc17 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -174,23 +174,23 @@
 	# For config options see: http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
     <IfModule mod_fcgid.c>
 <tmpl_if name='fastcgi_config_syntax' op='==' value='2'>
-	  FcgidIdleTimeout 300
-	  FcgidProcessLifeTime 3600
-	  FcgidMaxProcesses 1000
-	  FcgidMinProcessesPerClass 0
-	  FcgidMaxProcessesPerClass 100
-	  FcgidConnectTimeout 3
-	  FcgidIOTimeout 360
-	  FcgidBusyTimeout 300
+        FcgidIdleTimeout 300
+        FcgidProcessLifeTime 3600
+        FcgidMaxProcesses 1000
+        FcgidMinProcessesPerClass 0
+        FcgidMaxProcessesPerClass 100
+        FcgidConnectTimeout 3
+        FcgidIOTimeout 360
+        FcgidBusyTimeout 300
 <tmpl_else>
-	  IdleTimeout 300
-	  ProcessLifeTime 3600
-	  # MaxProcessCount 1000
-	  DefaultMinClassProcessCount 0
-	  DefaultMaxClassProcessCount 100
-	  IPCConnectTimeout 3
-	  IPCCommTimeout 360
-	  BusyTimeout 300
+        IdleTimeout 300
+        ProcessLifeTime 3600
+        # MaxProcessCount 1000
+        DefaultMinClassProcessCount 0
+        DefaultMaxClassProcessCount 100
+        IPCConnectTimeout 3
+        IPCCommTimeout 360
+        BusyTimeout 300
 </tmpl_if>
     </IfModule>
     <Directory {tmpl_var name='web_document_root_www'}>
@@ -201,7 +201,7 @@
         Order allow,deny
         Allow from all
     </Directory>
-	<Directory {tmpl_var name='web_document_root'}>
+    <Directory {tmpl_var name='web_document_root'}>
         AddHandler fcgid-script .php .php3 .php4 .php5
         FCGIWrapper <tmpl_var name='fastcgi_starter_path'><tmpl_var name='fastcgi_starter_script'> .php
         Options +ExecCGI
@@ -210,17 +210,13 @@
         Allow from all
     </Directory>
 </tmpl_if>
+
 <tmpl_if name="rewrite_enabled">
-    
     RewriteEngine on
-	
 <tmpl_if name='seo_redirect_enabled'>
-
     RewriteCond %{HTTP_HOST} ^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
     RewriteRule ^(.*)$ http://<tmpl_var name='seo_redirect_target_domain'>/$1 [R=301,L]
-
 </tmpl_if>
-
 <tmpl_loop name="redirects">
     RewriteCond %{HTTP_HOST}   <tmpl_var name='rewrite_domain'>$ [NC]
     RewriteRule   ^/(.*)$ <tmpl_var name='rewrite_target'>$1  <tmpl_var name='rewrite_type'>
@@ -234,11 +230,11 @@
 
     <IfModule mod_dav_fs.c>
 	  # Do not execute PHP files in webdav directory
-	  <Directory {tmpl_var name='document_root'}/webdav>
+      <Directory {tmpl_var name='document_root'}/webdav>
 	    <FilesMatch "\.ph(p3?|tml)$">
           SetHandler None
         </FilesMatch>
-	  </Directory>
+      </Directory>
       # DO NOT REMOVE THE COMMENTS!
       # IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
       # WEBDAV BEGIN
diff --git a/server/cron_daily.php b/server/cron_daily.php
index 3ffa45d0c4..65516b91c9 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -133,7 +133,7 @@ foreach($records as $rec) {
 	$webalizer_conf_main = '/etc/webalizer/webalizer.conf';
 	$webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf');
 	
-	unlink($statsdir.'/index.php');
+	if(is_file($statsdir.'/index.php')) unlink($statsdir.'/index.php');
 
 	if(!@is_file($webalizer_conf)) {
 		copy($webalizer_conf_main,$webalizer_conf);
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 6a4804c2d0..26768c3e9a 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -887,6 +887,9 @@ class monitor_tools {
 			$state = 'no_state';
 			$data['output'] = '';
 		}
+		
+		//* Encode data
+		$data['output'] = htmlentities($data['output']);
 
 		/*
 		 * Return the Result
diff --git a/server/mods-available/rescue_core_module.inc.php b/server/mods-available/rescue_core_module.inc.php
index f1c34cadbd..49012d50a0 100644
--- a/server/mods-available/rescue_core_module.inc.php
+++ b/server/mods-available/rescue_core_module.inc.php
@@ -89,14 +89,14 @@ class rescue_core_module {
 		$this->_rescueData = $this->_getRescueData();
 		
 		/*
-		 * rescue mysql if needed (maybe apache depends on mysql, so try this first!)
+		 * rescue mysql if needed (maybe httpd depends on mysql, so try this first!)
 		 */
 		$this->_rescueMySql();
 		
 		/*
-		 * rescue apache if needed
+		 * rescue httpd if needed
 		 */
-		$this->_rescueApache();
+		$this->_rescueHttpd();
 		
 		/*
 		 * The last step is to save the rescue-data
@@ -218,15 +218,15 @@ class rescue_core_module {
 	}
 
 	/**
-	 * restarts apache, if needed
+	 * restarts httpd, if needed
 	 */
-	private function _rescueApache(){
+	private function _rescueHttpd(){
 		global $app, $conf;
 		
 		/*
-		 * do nothing, if it is not allowed to rescue apache
+		 * do nothing, if it is not allowed to rescue httpd
 		 */
-		if ((isset($conf['serverconfig']['rescue']['do_not_try_rescue_apache']) && ($conf['serverconfig']['rescue']['do_not_try_rescue_apache']) == 'y')){
+		if ((isset($conf['serverconfig']['rescue']['do_not_try_rescue_httpd']) && ($conf['serverconfig']['rescue']['do_not_try_rescue_httpd']) == 'y')){
 			return;
 		}
 		
@@ -267,17 +267,23 @@ class rescue_core_module {
 		
 		/* if 5 times will not work, we have to give up... */
 		if ($tryCount > 5){
-			$app->log('Apache is down! Rescue will not help!', LOGLEVEL_ERROR);
+			$app->log('httpd is down! Rescue will not help!', LOGLEVEL_ERROR);
 			return;
 		}
 		
 		
-		$app->log('Apache is down! Try rescue apache (try:' . $tryCount . ')...', LOGLEVEL_WARN);
-
-		if(is_file($conf['init_scripts'] . '/' . 'httpd')) {
-			$daemon = 'httpd';
+		$app->log('httpd is down! Try rescue httpd (try:' . $tryCount . ')...', LOGLEVEL_WARN);
+		
+		if($conf['serverconfig']['web']['server_type'] == 'nginx'){
+			$daemon = 'nginx';
 		} else {
-			$daemon = 'apache2';
+			if(is_file($conf['init_scripts'] . '/' . 'httpd')) {
+				$daemon = 'httpd';
+			} elseif(is_file($conf['init_scripts'] . '/' . 'httpd2')){
+				$daemon = 'httpd2';
+			} else {
+				$daemon = 'apache2';
+			}
 		}
 		
 		$this->_rescueDaemon($daemon);
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 2e14ab01d2..fbf91b9e00 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -827,12 +827,13 @@ class apache2_plugin {
 			$tpl->setVar('alias','');
 		}
 
-		if(count($rewrite_rules) > 0) {
+		if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0) {
 			$tpl->setVar('rewrite_enabled',1);
 		} else {
 			$tpl->setVar('rewrite_enabled',0);
 		}
-		$tpl->setLoop('redirects',$rewrite_rules);
+
+		//$tpl->setLoop('redirects',$rewrite_rules);
 
 		/**
 		 * install fast-cgi starter script and add script aliasd config
@@ -957,22 +958,39 @@ class apache2_plugin {
 		//* create empty vhost array
 		$vhosts = array();
 		
-		//* Add vhost for ipv4 IP
-		$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 0, 'port' => 80 );
+		//* Add vhost for ipv4 IP	
+		if(count($rewrite_rules) > 0){
+			$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 0, 'port' => 80, 'redirects' => $rewrite_rules);
+		} else {
+			$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 0, 'port' => 80);
+		}
 		
 		//* Add vhost for ipv4 IP with SSL
 		if($data['new']['ssl_domain'] != '' && $data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file) && (@filesize($crt_file)>0)  && (@filesize($key_file)>0)) {
-			$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 1, 'port' => '443' );
+			if(count($rewrite_rules) > 0){
+				$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 1, 'port' => '443', 'redirects' => $rewrite_rules);
+			} else {
+				$vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 1, 'port' => '443');
+			}
 			$app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
 		}
 		
 		//* Add vhost for IPv6 IP
 		if($data['new']['ipv6_address'] != '') {
-			$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80 );
+			if(count($rewrite_rules) > 0){
+				$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80, 'redirects' => $rewrite_rules);
+			} else {
+				$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80);
+			}
 		
 			//* Add vhost for ipv6 IP with SSL
 			if($data['new']['ssl_domain'] != '' && $data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file) && (@filesize($crt_file)>0)  && (@filesize($key_file)>0)) {
-				$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 1, 'port' => '443' );
+				
+				if(count($rewrite_rules) > 0){
+					$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 1, 'port' => '443', 'redirects' => $rewrite_rules);
+				} else {
+					$vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 1, 'port' => '443');
+				}
 				$app->log('Enable SSL for IPv6: '.$domain,LOGLEVEL_DEBUG);
 			}
 		}
@@ -1125,11 +1143,24 @@ class apache2_plugin {
 		} else {
 			//* This is a website
 			// Deleting the vhost file, symlink and the data directory
-			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_symlink);
-			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-
 			$vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
+			
+			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			
 			unlink($vhost_file);
 			$app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
 
@@ -1193,6 +1224,13 @@ class apache2_plugin {
 			if($data['old']['stats_type'] == 'awstats') {
 				$this->awstats_delete($data,$web_config);
 			}
+			
+			if($apache_chrooted) {
+				$app->services->restartServiceDelayed('httpd','restart');
+			} else {
+				// request a httpd reload when all records have been processed
+				$app->services->restartServiceDelayed('httpd','reload');
+			}
 
 		}
 	}
@@ -1267,7 +1305,7 @@ class apache2_plugin {
 		if(substr($folder['path'],0,1) == '/') $folder['path'] = substr($folder['path'],1);
 		if(substr($folder['path'],-1) == '/') $folder['path'] = substr($folder['path'],0,-1);
 		$folder_path = escapeshellcmd($website['document_root'].'/web/'.$folder['path']);
-		if(substr($folder_path,-1 != '/')) $folder_path .= '/';
+		if(substr($folder_path,-1) != '/') $folder_path .= '/';
 		
 		//* Check if the resulting path is inside the docroot
 		if(stristr($folder_path,'..') || stristr($folder_path,'./') || stristr($folder_path,'\\')) {
@@ -1282,10 +1320,23 @@ class apache2_plugin {
 		if(!is_file($folder_path.'.htpasswd')) {
 			touch($folder_path.'.htpasswd');
 			chmod($folder_path.'.htpasswd',0755);
-			$app->log('Created file'.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+			$app->log('Created file '.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+		}
+		
+		/*
+		$auth_users = $app->db->queryAllRecords("SELECT * FROM web_folder_user WHERE active = 'y' AND web_folder_id = ".intval($folder_id));
+		$htpasswd_content = '';
+		if(is_array($auth_users) && !empty($auth_users)){
+			foreach($auth_users as $auth_user){
+				$htpasswd_content .= $auth_user['username'].':'.$auth_user['password']."\n";
+			}
 		}
+		$htpasswd_content = trim($htpasswd_content);
+		@file_put_contents($folder_path.'.htpasswd', $htpasswd_content);
+		$app->log('Changed .htpasswd file: '.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+		*/
 		
-		if($data['new']['username'] != $data['old']['username'] || $data['new']['active'] == 'n') {
+		if(($data['new']['username'] != $data['old']['username'] || $data['new']['active'] == 'n') && $data['old']['username'] != '') {
 			$app->system->removeLine($folder_path.'.htpasswd',$data['old']['username'].':');
 			$app->log('Removed user: '.$data['old']['username'],LOGLEVEL_DEBUG);
 		}
@@ -1301,13 +1352,14 @@ class apache2_plugin {
 			}
 		}
 		
+		
 		//* Create the .htaccess file
-		if(!is_file($folder_path.'.htaccess')) {
+		//if(!is_file($folder_path.'.htaccess')) {
 			$ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$folder_path.".htpasswd\nrequire valid-user";
 			file_put_contents($folder_path.'.htaccess',$ht_file);
 			chmod($folder_path.'.htpasswd',0755);
-			$app->log('Created file'.$folder_path.'.htaccess',LOGLEVEL_DEBUG);
-		}
+			$app->log('Created file '.$folder_path.'.htaccess',LOGLEVEL_DEBUG);
+		//}
 		
 	}
 	
@@ -1317,7 +1369,7 @@ class apache2_plugin {
 		
 		$folder_id = $data['old']['web_folder_id'];
 		
-		$folder = $app->db->queryOneRecord("SELECT * FROM web_folder WHERE web_folder_id = ".intval($folder_id));
+		$folder = $data['old'];
 		$website = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($folder['parent_domain_id']));
 		
 		if(!is_array($folder) or !is_array($website)) {
@@ -1326,8 +1378,10 @@ class apache2_plugin {
 		}
 		
 		//* Get the folder path.
+		if(substr($folder['path'],0,1) == '/') $folder['path'] = substr($folder['path'],1);
+		if(substr($folder['path'],-1) == '/') $folder['path'] = substr($folder['path'],0,-1);
 		$folder_path = realpath($website['document_root'].'/web/'.$folder['path']);
-		if(substr($folder_path,-1 != '/')) $folder_path .= '/';
+		if(substr($folder_path,-1) != '/') $folder_path .= '/';
 		
 		//* Check if the resulting path is inside the docroot
 		if(substr($folder_path,0,strlen($website['document_root'])) != $website['document_root']) {
@@ -1338,13 +1392,13 @@ class apache2_plugin {
 		//* Remove .htpasswd file
 		if(is_file($folder_path.'.htpasswd')) {
 			unlink($folder_path.'.htpasswd');
-			$app->log('Removed file'.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+			$app->log('Removed file '.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
 		}
 		
 		//* Remove .htaccess file
 		if(is_file($folder_path.'.htaccess')) {
 			unlink($folder_path.'.htaccess');
-			$app->log('Removed file'.$folder_path.'.htaccess',LOGLEVEL_DEBUG);
+			$app->log('Removed file '.$folder_path.'.htaccess',LOGLEVEL_DEBUG);
 		}
 	}
 	
@@ -1360,11 +1414,15 @@ class apache2_plugin {
 		}
 		
 		//* Get the folder path.
+		if(substr($data['old']['path'],0,1) == '/') $data['old']['path'] = substr($data['old']['path'],1);
+		if(substr($data['old']['path'],-1) == '/') $data['old']['path'] = substr($data['old']['path'],0,-1);
 		$old_folder_path = realpath($website['document_root'].'/web/'.$data['old']['path']);
-		if(substr($old_folder_path,-1 != '/')) $old_folder_path .= '/';
+		if(substr($old_folder_path,-1) != '/') $old_folder_path .= '/';
 			
+		if(substr($data['new']['path'],0,1) == '/') $data['new']['path'] = substr($data['new']['path'],1);
+		if(substr($data['new']['path'],-1) == '/') $data['new']['path'] = substr($data['new']['path'],0,-1);
 		$new_folder_path = escapeshellcmd($website['document_root'].'/web/'.$data['new']['path']);
-		if(substr($new_folder_path,-1 != '/')) $new_folder_path .= '/';
+		if(substr($new_folder_path,-1) != '/') $new_folder_path .= '/';
 		
 		//* Check if the resulting path is inside the docroot
 		if(stristr($new_folder_path,'..') || stristr($new_folder_path,'./') || stristr($new_folder_path,'\\')) {
@@ -1395,29 +1453,29 @@ class apache2_plugin {
 			//* move .htpasswd file
 			if(is_file($old_folder_path.'.htpasswd')) {
 				rename($old_folder_path.'.htpasswd',$new_folder_path.'.htpasswd');
-				$app->log('Moved file'.$new_folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+				$app->log('Moved file '.$old_folder_path.'.htpasswd to '.$new_folder_path.'.htpasswd',LOGLEVEL_DEBUG);
 			}
 			
-			//* move .htpasswd file
+			//* delete old .htaccess file
 			if(is_file($old_folder_path.'.htaccess')) {
-				rename($old_folder_path.'.htaccess',$new_folder_path.'.htaccess');
-				$app->log('Moved file'.$new_folder_path.'.htaccess',LOGLEVEL_DEBUG);
+				unlink($old_folder_path.'.htaccess');
+				$app->log('Deleted file '.$old_folder_path.'.htaccess',LOGLEVEL_DEBUG);
 			}
 		
 		}
 		
 		//* Create the .htaccess file
-		if($data['new']['active'] == 'y' && !is_file($new_folder_path.'.htaccess')) {
-			$ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$folder_path.".htpasswd\nrequire valid-user";
+		if($data['new']['active'] == 'y') {
+			$ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$new_folder_path.".htpasswd\nrequire valid-user";
 			file_put_contents($new_folder_path.'.htaccess',$ht_file);
 			chmod($new_folder_path.'.htpasswd',0755);
-			$app->log('Created file'.$new_folder_path.'.htaccess',LOGLEVEL_DEBUG);
+			$app->log('Created file '.$new_folder_path.'.htaccess',LOGLEVEL_DEBUG);
 		}
 		
 		//* Remove .htaccess file
 		if($data['new']['active'] == 'n' && is_file($new_folder_path.'.htaccess')) {
 			unlink($new_folder_path.'.htaccess');
-			$app->log('Removed file'.$new_folder_path.'.htaccess',LOGLEVEL_DEBUG);
+			$app->log('Removed file '.$new_folder_path.'.htaccess',LOGLEVEL_DEBUG);
 		}
 		
 		
@@ -1699,7 +1757,7 @@ class apache2_plugin {
 			$app->log('Created AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG);
 		}
 		
-		unlink($data['new']['document_root']."/web/stats/index.html");
+		if(is_file($data['new']['document_root']."/web/stats/index.html")) unlink($data['new']['document_root']."/web/stats/index.html");
 		copy("/usr/local/ispconfig/server/conf/awstats_index.php.master",$data['new']['document_root']."/web/stats/index.php");
 	}
 	
diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php
index d89a61c672..f9fe65b345 100644
--- a/server/plugins-available/apps_vhost_plugin.inc.php
+++ b/server/plugins-available/apps_vhost_plugin.inc.php
@@ -128,6 +128,7 @@ class apps_vhost_plugin {
 			if(substr($socket_dir,-1) != '/') $socket_dir .= '/';
 			if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir);
 			$fpm_socket = $socket_dir.'apps.sock';
+			$cgi_socket = escapeshellcmd($web_config['nginx_cgi_socket']);
 		
 			$content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content);
 			$content = str_replace('{apps_vhost_port}', $web_config['apps_vhost_port'], $content);
@@ -135,6 +136,7 @@ class apps_vhost_plugin {
 			$content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content);
 			//$content = str_replace('{fpm_port}', $web_config['php_fpm_start_port']+1, $content);
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
+			$content = str_replace('{cgi_socket}', $cgi_socket, $content);
 			
 			// PHP-FPM
 			// Dont just copy over the php-fpm pool template but add some custom settings
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 83f8d4e866..b4ba1b7c70 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -79,6 +79,13 @@ class nginx_plugin {
 		*/
 		
 		$app->plugins->registerEvent('client_delete',$this->plugin_name,'client_delete');
+		
+		$app->plugins->registerEvent('web_folder_user_insert',$this->plugin_name,'web_folder_user');
+		$app->plugins->registerEvent('web_folder_user_update',$this->plugin_name,'web_folder_user');
+		$app->plugins->registerEvent('web_folder_user_delete',$this->plugin_name,'web_folder_user');
+		
+		$app->plugins->registerEvent('web_folder_update',$this->plugin_name,'web_folder_update');
+		$app->plugins->registerEvent('web_folder_delete',$this->plugin_name,'web_folder_delete');
 	}
 
 	// Handle the creation of SSL certificates
@@ -819,6 +826,10 @@ class nginx_plugin {
 		
 		//* Create basic http auth for website statistics
 		$tpl->setVar('stats_auth_passwd_file', $data['new']['document_root']."/.htpasswd_stats");
+		
+		// Create basic http auth for other directories
+		$basic_auth_locations = $this->_create_web_folder_auth_configuration($data['new']);
+		if(is_array($basic_auth_locations) && !empty($basic_auth_locations)) $tpl->setLoop('basic_auth_locations', $basic_auth_locations);
 
 		$vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost');
 		//* Make a backup copy of vhost file
@@ -940,9 +951,9 @@ class nginx_plugin {
 
 		//* Check if this is a chrooted setup
 		if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) {
-			$apache_chrooted = true;
+			$nginx_chrooted = true;
 		} else {
-			$apache_chrooted = false;
+			$nginx_chrooted = false;
 		}
 
 		if($data['old']['type'] != 'vhost' && $data['old']['parent_domain_id'] > 0) {
@@ -957,21 +968,34 @@ class nginx_plugin {
 
 		} else {
 			//* This is a website
-			// Deleting the vhost file, symlink and the data directory
-			$vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_symlink);
-			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-
+			// Deleting the vhost file, symlink and the data directory			
 			$vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
+			
+			$vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			$vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			$vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost');
+			if(is_link($vhost_symlink)){
+				unlink($vhost_symlink);
+				$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			}
+			
 			unlink($vhost_file);
 			$app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
 
 			$docroot = escapeshellcmd($data['old']['document_root']);
 			if($docroot != '' && !stristr($docroot,'..')) exec('rm -rf '.$docroot);
 
-
-			//remove the php fastgi starter script if available
+			//remove the php fastgi starter script and PHP-FPM pool definition if available
 			if ($data['old']['php'] == 'fast-cgi') {
+				$this->php_fpm_pool_delete($data,$web_config);
 				$fastcgi_starter_path = str_replace('[system_user]',$data['old']['system_user'],$web_config['fastcgi_starter_path']);
 				if (is_dir($fastcgi_starter_path)) {
 					exec('rm -rf '.$fastcgi_starter_path);
@@ -1020,16 +1044,14 @@ class nginx_plugin {
 			$command = 'userdel';
 			$command .= ' '.$data['old']['system_user'];
 			exec($command);
-			if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
+			if($nginx_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
 			
 			//* Remove the awstats configuration file
 			if($data['old']['stats_type'] == 'awstats') {
 				$this->awstats_delete($data,$web_config);
 			}
 			
-			if($data['old']['php'] == 'fast-cgi') {
-				$this->php_fpm_pool_delete($data,$web_config);
-			}
+			$app->services->restartServiceDelayed('httpd','reload');
 
 		}
 	}
@@ -1059,6 +1081,210 @@ class nginx_plugin {
 
 	}
 	
+	//* Create or update the .htaccess folder protection
+	function web_folder_user($event_name,$data) {
+		global $app, $conf;
+
+		$app->uses('system');
+		
+		if($event_name == 'web_folder_user_delete') {
+			$folder_id = $data['old']['web_folder_id'];
+		} else {
+			$folder_id = $data['new']['web_folder_id'];
+		}
+		
+		$folder = $app->db->queryOneRecord("SELECT * FROM web_folder WHERE web_folder_id = ".intval($folder_id));
+		$website = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($folder['parent_domain_id']));
+		
+		if(!is_array($folder) or !is_array($website)) {
+			$app->log('Not able to retrieve folder or website record.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Get the folder path.
+		if(substr($folder['path'],0,1) == '/') $folder['path'] = substr($folder['path'],1);
+		if(substr($folder['path'],-1) == '/') $folder['path'] = substr($folder['path'],0,-1);
+		$folder_path = escapeshellcmd($website['document_root'].'/web/'.$folder['path']);
+		if(substr($folder_path,-1) != '/') $folder_path .= '/';
+		
+		//* Check if the resulting path is inside the docroot
+		if(stristr($folder_path,'..') || stristr($folder_path,'./') || stristr($folder_path,'\\')) {
+			$app->log('Folder path "'.$folder_path.'" contains .. or ./.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Create the folder path, if it does not exist
+		if(!is_dir($folder_path)) exec('mkdir -p '.$folder_path);
+		
+		//* Create empty .htpasswd file, if it does not exist
+		if(!is_file($folder_path.'.htpasswd')) {
+			touch($folder_path.'.htpasswd');
+			chmod($folder_path.'.htpasswd',0755);
+			$app->log('Created file'.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+		}
+		
+		/*
+		$auth_users = $app->db->queryAllRecords("SELECT * FROM web_folder_user WHERE active = 'y' AND web_folder_id = ".intval($folder_id));
+		$htpasswd_content = '';
+		if(is_array($auth_users) && !empty($auth_users)){
+			foreach($auth_users as $auth_user){
+				$htpasswd_content .= $auth_user['username'].':'.$auth_user['password']."\n";
+			}
+		}
+		$htpasswd_content = trim($htpasswd_content);
+		@file_put_contents($folder_path.'.htpasswd', $htpasswd_content);
+		$app->log('Changed .htpasswd file: '.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+		*/
+		
+		if(($data['new']['username'] != $data['old']['username'] || $data['new']['active'] == 'n') && $data['old']['username'] != '') {
+			$app->system->removeLine($folder_path.'.htpasswd',$data['old']['username'].':');
+			$app->log('Removed user: '.$data['old']['username'],LOGLEVEL_DEBUG);
+		}
+		
+		//* Add or remove the user from .htpasswd file
+		if($event_name == 'web_folder_user_delete') {
+			$app->system->removeLine($folder_path.'.htpasswd',$data['old']['username'].':');
+			$app->log('Removed user: '.$data['old']['username'],LOGLEVEL_DEBUG);
+		} else {
+			if($data['new']['active'] == 'y') {
+				$app->system->replaceLine($folder_path.'.htpasswd',$data['new']['username'].':',$data['new']['username'].':'.$data['new']['password'],0,1);
+				$app->log('Added or updated user: '.$data['new']['username'],LOGLEVEL_DEBUG);
+			}
+		}
+		
+		// write basic auth configuration to vhost file because nginx does not support .htaccess
+		$webdata['new'] = $webdata['old'] = $website;
+		$this->update('web_domain_update', $webdata);
+	}
+	
+	//* Remove .htpasswd file, when folder protection is removed
+	function web_folder_delete($event_name,$data) {
+		global $app, $conf;
+		
+		$folder_id = $data['old']['web_folder_id'];
+		
+		$folder = $data['old'];
+		$website = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($folder['parent_domain_id']));
+		
+		if(!is_array($folder) or !is_array($website)) {
+			$app->log('Not able to retrieve folder or website record.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Get the folder path.
+		if(substr($folder['path'],0,1) == '/') $folder['path'] = substr($folder['path'],1);
+		if(substr($folder['path'],-1) == '/') $folder['path'] = substr($folder['path'],0,-1);
+		$folder_path = realpath($website['document_root'].'/web/'.$folder['path']);
+		if(substr($folder_path,-1) != '/') $folder_path .= '/';
+		
+		//* Check if the resulting path is inside the docroot
+		if(substr($folder_path,0,strlen($website['document_root'])) != $website['document_root']) {
+			$app->log('Folder path is outside of docroot.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Remove .htpasswd file
+		if(is_file($folder_path.'.htpasswd')) {
+			unlink($folder_path.'.htpasswd');
+			$app->log('Removed file '.$folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+		}
+		
+		// write basic auth configuration to vhost file because nginx does not support .htaccess
+		$webdata['new'] = $webdata['old'] = $website;
+		$this->update('web_domain_update', $webdata);
+	}
+	
+	//* Update folder protection, when path has been changed
+	function web_folder_update($event_name,$data) {
+		global $app, $conf;
+		
+		$website = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id']));
+	
+		if(!is_array($website)) {
+			$app->log('Not able to retrieve folder or website record.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Get the folder path.
+		if(substr($data['old']['path'],0,1) == '/') $data['old']['path'] = substr($data['old']['path'],1);
+		if(substr($data['old']['path'],-1) == '/') $data['old']['path'] = substr($data['old']['path'],0,-1);
+		$old_folder_path = realpath($website['document_root'].'/web/'.$data['old']['path']);
+		if(substr($old_folder_path,-1) != '/') $old_folder_path .= '/';
+			
+		if(substr($data['new']['path'],0,1) == '/') $data['new']['path'] = substr($data['new']['path'],1);
+		if(substr($data['new']['path'],-1) == '/') $data['new']['path'] = substr($data['new']['path'],0,-1);
+		$new_folder_path = escapeshellcmd($website['document_root'].'/web/'.$data['new']['path']);
+		if(substr($new_folder_path,-1) != '/') $new_folder_path .= '/';
+		
+		//* Check if the resulting path is inside the docroot
+		if(stristr($new_folder_path,'..') || stristr($new_folder_path,'./') || stristr($new_folder_path,'\\')) {
+			$app->log('Folder path "'.$new_folder_path.'" contains .. or ./.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		if(stristr($old_folder_path,'..') || stristr($old_folder_path,'./') || stristr($old_folder_path,'\\')) {
+			$app->log('Folder path "'.$old_folder_path.'" contains .. or ./.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		
+		//* Check if the resulting path is inside the docroot
+		if(substr($old_folder_path,0,strlen($website['document_root'])) != $website['document_root']) {
+			$app->log('Old folder path '.$old_folder_path.' is outside of docroot.',LOGLEVEL_DEBUG);
+			return false;
+		}
+		if(substr($new_folder_path,0,strlen($website['document_root'])) != $website['document_root']) {
+			$app->log('New folder path '.$new_folder_path.' is outside of docroot.',LOGLEVEL_DEBUG);
+			return false;
+		}
+			
+		//* Create the folder path, if it does not exist
+		if(!is_dir($new_folder_path)) exec('mkdir -p '.$new_folder_path);
+		
+		if($data['old']['path'] != $data['new']['path']) {
+
+		
+			//* move .htpasswd file
+			if(is_file($old_folder_path.'.htpasswd')) {
+				rename($old_folder_path.'.htpasswd',$new_folder_path.'.htpasswd');
+				$app->log('Moved file '.$old_folder_path.'.htpasswd to '.$new_folder_path.'.htpasswd',LOGLEVEL_DEBUG);
+			}
+		
+		}
+
+		// write basic auth configuration to vhost file because nginx does not support .htaccess
+		$webdata['new'] = $webdata['old'] = $website;
+		$this->update('web_domain_update', $webdata);
+	}
+	
+	function _create_web_folder_auth_configuration($website){
+		global $app, $conf;
+		//* Create the domain.auth file which is included in the vhost configuration file
+		$app->uses('getconf');
+		$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
+		$basic_auth_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$website['domain'].'.auth');
+		//$app->load('tpl');
+		//$tpl = new tpl();
+		//$tpl->newTemplate('nginx_http_authentication.auth.master');
+		$website_auth_locations = $app->db->queryAllRecords("SELECT * FROM web_folder WHERE active = 'y' AND parent_domain_id = ".intval($website['domain_id']));
+		$basic_auth_locations = array();
+		if(is_array($website_auth_locations) && !empty($website_auth_locations)){
+			foreach($website_auth_locations as $website_auth_location){
+				if(substr($website_auth_location['path'],0,1) == '/') $website_auth_location['path'] = substr($website_auth_location['path'],1);
+				if(substr($website_auth_location['path'],-1) == '/') $website_auth_location['path'] = substr($website_auth_location['path'],0,-1);
+				if($website_auth_location['path'] != ''){
+					$website_auth_location['path'] .= '/';
+				}
+				$basic_auth_locations[] = array('htpasswd_location' => '/'.$website_auth_location['path'],
+												'htpasswd_path' => $website['document_root'].'/web/'.$website_auth_location['path']);
+			}
+		}
+		return $basic_auth_locations;
+		//$tpl->setLoop('basic_auth_locations', $basic_auth_locations);
+		//file_put_contents($basic_auth_file,$tpl->grab());
+		//$app->log('Writing the http basic authentication file: '.$basic_auth_file,LOGLEVEL_DEBUG);
+		//unset($tpl);
+		//$app->services->restartServiceDelayed('httpd','reload');
+	}
+	
 	//* Update the awstats configuration file
 	private function awstats_update ($data,$web_config) {
 		global $app;
@@ -1197,7 +1423,7 @@ class nginx_plugin {
 		
 		$pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']);
 		if(substr($pool_dir,-1) != '/') $pool_dir .= '/';
-		$pool_name = 'web'.$data['new']['domain_id'];
+		$pool_name = 'web'.$data['old']['domain_id'];
 		
 		if ( @is_file($pool_dir.$pool_name.'.conf') ) {
 			unlink($pool_dir.$pool_name.'.conf');
diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php
index 58858a3bcc..946aaaa4c6 100755
--- a/server/plugins-available/shelluser_base_plugin.inc.php
+++ b/server/plugins-available/shelluser_base_plugin.inc.php
@@ -195,6 +195,7 @@ class shelluser_base_plugin {
 	}
 	
 	private function _setup_ssh_rsa() {
+		global $app;
 		$this->app->log("ssh-rsa setup shelluser_base",LOGLEVEL_DEBUG);
 		// Get the client ID, username, and the key
 		$domain_data = $this->app->db->queryOneRecord('SELECT sys_groupid FROM web_domain WHERE web_domain.domain_id = '.intval($this->data['new']['parent_domain_id']));
@@ -207,41 +208,68 @@ class shelluser_base_plugin {
 		unset($client_data);
 		
 		// ssh-rsa authentication variables
-		$sshrsa = escapeshellcmd($this->data['new']['ssh_rsa']);
+		$sshrsa = $this->data['new']['ssh_rsa'];
 		$usrdir = escapeshellcmd($this->data['new']['dir']);
 		$sshdir = $usrdir.'/.ssh';
 		$sshkeys= $usrdir.'/.ssh/authorized_keys';
 		
+		$app->uses('file');
+		$sshrsa = $app->file->unix_nl($sshrsa);
+		$sshrsa = $app->file->remove_blank_lines($sshrsa,0);
+		
 		// If this user has no key yet, generate a pair
-		if ($userkey == '' && $id>0) 
-		{
+		if ($userkey == '' && $id > 0){
 			//Generate ssh-rsa-keys
 			exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f /tmp/id_rsa -N ""');
+			
+			// use the public key that has been generated
+			$userkey = file_get_contents('/tmp/id_rsa.pub');
+			
 			// save keypair in client table
-			$this->app->db->query("UPDATE client SET created_at = ".time().", id_rsa = '".file_get_contents('/tmp/id_rsa')."', ssh_rsa = '".file_get_contents('/tmp/id_rsa.pub')."' WHERE client_id = ".$id);
-			// and use the public key that has been generated
-			$userkey = file_get_contents('/tmp/id_rsa.pub')
-			;
+			$this->app->db->query("UPDATE client SET created_at = ".time().", id_rsa = '".file_get_contents('/tmp/id_rsa')."', ssh_rsa = '".$userkey."' WHERE client_id = ".$id);
+			
 			exec('rm -f /tmp/id_rsa /tmp/id_rsa.pub');
 			$this->app->log("ssh-rsa keypair generated for ".$username,LOGLEVEL_DEBUG);
 		};
-		
-		if (!file_exists($sshkeys))
-		{
+
+		if (!file_exists($sshkeys)){
 			// add root's key
-			exec("mkdir '$sshdir'");
-			exec("cat /root/.ssh/authorized_keys > '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
+			$app->file->mkdirs($sshdir, '0755');
+			file_put_contents($sshkeys, file_get_contents('/root/.ssh/authorized_keys'));
 		
+			// Remove duplicate keys
+			$existing_keys = file($sshkeys);
+			$new_keys = explode("\n", $userkey);
+			$final_keys_arr = array_merge($existing_keys, $new_keys);
+			$new_final_keys_arr = array();
+			if(is_array($final_keys_arr) && !empty($final_keys_arr)){
+				foreach($final_keys_arr as $key => $val){
+					$new_final_keys_arr[$key] = trim($val);
+				}
+			}
+			$final_keys = implode("\n", array_flip(array_flip($new_final_keys_arr)));
+			
 			// add the user's key
-			exec("echo '$userkey' >> '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
+			file_put_contents($sshkeys, $final_keys);
+			$app->file->remove_blank_lines($sshkeys);
 			$this->app->log("ssh-rsa authorisation keyfile created in ".$sshkeys,LOGLEVEL_DEBUG);
 		}
-		if ($sshrsa!=''){
+		if ($sshrsa != ''){
+			// Remove duplicate keys
+			$existing_keys = file($sshkeys);
+			$new_keys = explode("\n", $sshrsa);
+			$final_keys_arr = array_merge($existing_keys, $new_keys);
+			$new_final_keys_arr = array();
+			if(is_array($final_keys_arr) && !empty($final_keys_arr)){
+				foreach($final_keys_arr as $key => $val){
+					$new_final_keys_arr[$key] = trim($val);
+				}
+			}
+			$final_keys = implode("\n", array_flip(array_flip($new_final_keys_arr)));
+			
 			// add the custom key 
-			exec("echo '$sshrsa' >> '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
+			file_put_contents($sshkeys, $final_keys);
+			$app->file->remove_blank_lines($sshkeys);
 			$this->app->log("ssh-rsa key updated in ".$sshkeys,LOGLEVEL_DEBUG);
 		}
 		// set proper file permissions
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 31db30f55d..c1e2b2cd3f 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -364,6 +364,7 @@ class shelluser_jailkit_plugin {
 	}
 
 	private function _setup_ssh_rsa() {
+		global $app;
 		$this->app->log("ssh-rsa setup shelluser_jailkit",LOGLEVEL_DEBUG); 
 		// Get the client ID, username, and the key
 		$domain_data = $this->app->db->queryOneRecord('SELECT sys_groupid FROM web_domain WHERE web_domain.domain_id = '.intval($this->data['new']['parent_domain_id']));
@@ -376,41 +377,68 @@ class shelluser_jailkit_plugin {
 		unset($client_data);
 		
 		// ssh-rsa authentication variables
-		$sshrsa = escapeshellcmd($this->data['new']['ssh_rsa']);
+		$sshrsa = $this->data['new']['ssh_rsa'];
 		$usrdir = escapeshellcmd($this->data['new']['dir']).'/'.$this->_get_home_dir($this->data['new']['username']);
-			$sshdir = $usrdir.'/.ssh';
-			$sshkeys= $usrdir.'/.ssh/authorized_keys';
+		$sshdir = $usrdir.'/.ssh';
+		$sshkeys= $usrdir.'/.ssh/authorized_keys';
+			
+		$app->uses('file');
+		$sshrsa = $app->file->unix_nl($sshrsa);
+		$sshrsa = $app->file->remove_blank_lines($sshrsa,0);
 		
 		// If this user has no key yet, generate a pair
-		if ($userkey == '' && $id>0) 
-		{
+		if ($userkey == '' && $id > 0){
 			//Generate ssh-rsa-keys
 			exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f /tmp/id_rsa -N ""');
+			
+			// use the public key that has been generated
+			$userkey = file_get_contents('/tmp/id_rsa.pub');
+			
 			// save keypair in client table
-			$this->app->db->query("UPDATE client SET created_at = ".time().", id_rsa = '".file_get_contents('/tmp/id_rsa')."', ssh_rsa = '".file_get_contents('/tmp/id_rsa.pub')."' WHERE client_id = ".$id);
-			// and use the public key that has been generated
-			$userkey = file_get_contents('/tmp/id_rsa.pub')
-			;
+			$this->app->db->query("UPDATE client SET created_at = ".time().", id_rsa = '".file_get_contents('/tmp/id_rsa')."', ssh_rsa = '".$userkey."' WHERE client_id = ".$id);
+
 			exec('rm -f /tmp/id_rsa /tmp/id_rsa.pub');
 			$this->app->log("ssh-rsa keypair generated for ".$username,LOGLEVEL_DEBUG);
 		};
 		
-		if (!file_exists($sshkeys))
-		{
+		if (!file_exists($sshkeys)){
 			// add root's key
-			exec("mkdir '$sshdir'");
-			exec("cat /root/.ssh/authorized_keys > '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
-		
+			$app->file->mkdirs($sshdir, '0755');
+			file_put_contents($sshkeys, file_get_contents('/root/.ssh/authorized_keys'));
+		
+			// Remove duplicate keys
+			$existing_keys = file($sshkeys);
+			$new_keys = explode("\n", $userkey);
+			$final_keys_arr = array_merge($existing_keys, $new_keys);
+			$new_final_keys_arr = array();
+			if(is_array($final_keys_arr) && !empty($final_keys_arr)){
+				foreach($final_keys_arr as $key => $val){
+					$new_final_keys_arr[$key] = trim($val);
+				}
+			}
+			$final_keys = implode("\n", array_flip(array_flip($new_final_keys_arr)));
+			
 			// add the user's key
-			exec("echo '$userkey' >> '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
+			file_put_contents($sshkeys, $final_keys);
+			$app->file->remove_blank_lines($sshkeys);
 			$this->app->log("ssh-rsa authorisation keyfile created in ".$sshkeys,LOGLEVEL_DEBUG);
 		}
-		if ($sshrsa!=''){
+		if ($sshrsa != ''){
+			// Remove duplicate keys
+			$existing_keys = file($sshkeys);
+			$new_keys = explode("\n", $sshrsa);
+			$final_keys_arr = array_merge($existing_keys, $new_keys);
+			$new_final_keys_arr = array();
+			if(is_array($final_keys_arr) && !empty($final_keys_arr)){
+				foreach($final_keys_arr as $key => $val){
+					$new_final_keys_arr[$key] = trim($val);
+				}
+			}
+			$final_keys = implode("\n", array_flip(array_flip($new_final_keys_arr)));
+			
 			// add the custom key 
-			exec("echo '$sshrsa' >> '$sshkeys'");
-			exec("echo '' >> '$sshkeys'");
+			file_put_contents($sshkeys, $final_keys);
+			$app->file->remove_blank_lines($sshkeys);
 			$this->app->log("ssh-rsa key updated in ".$sshkeys,LOGLEVEL_DEBUG);
 		}
 		// set proper file permissions
-- 
GitLab