diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index c437ea32bfcae8108fba5306aa7e675d6bde9356..fb587770bd31ef9a3df4c1100ebd19c8bb390a7e 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -812,7 +812,7 @@ class installer_base {
 	public function get_postfix_service($service, $type) {
 		global $conf;
 
-		exec("postconf -M", $out, $ret);
+		exec("postconf -M 2> /dev/null", $out, $ret);
 
 		if ($ret === 0) { //* with postfix >= 2.9 we can detect configured services with postconf
 			unset($out);
@@ -822,9 +822,9 @@ class installer_base {
 			}
 			$postfix_service = @($out[0]=='')?false:true;
         } else { //* fallback - Postfix < 2.9
-			rf($conf['postfix']['config_dir'].'/master.cf');
-			$regex = '/[^#]'.$service.'.*.'.$type.'.*/';
-			$postfix_service = @(!preg_match($regex, $content))?true:false;
+			$content = rf($conf['postfix']['config_dir'].'/master.cf');
+			$regex = "/^((?!#)".$service.".*".$type.".*)$/m"; 
+			$postfix_service = @(preg_match($regex, $content))?true:false;
 		}
 
 		return $postfix_service;
@@ -1366,21 +1366,25 @@ class installer_base {
 
 		// Add the clamav user to the amavis group
 		exec('adduser clamav amavis');
-
-		// Create the director for DKIM-Keys
-		if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750, true);
-		// get shell-user for amavis
-		$amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
-		if(!empty($amavis_user)) {
-			$amavis_user=rtrim($amavis_user, ":");
-			exec('chown '.$amavis_user.' /var/lib/amavis/dkim');
-		}
 		// get shell-group for amavis
 		$amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group');
 		if(!empty($amavis_group)) {
 			$amavis_group=rtrim($amavis_group, ":");
-			exec('chgrp '.$amavis_group.' /var/lib/amavis/dkim');
 		}
+		// get shell-user for amavis
+		$amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
+		if(!empty($amavis_user)) {
+			$amavis_user=rtrim($amavis_user, ":");
+		}
+
+		// Create the director for DKIM-Keys
+		if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true);
+		if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis');
+		if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis');
+		if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750);
+		if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim');
+		if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim');
+
 	}
 
 	public function configure_spamassassin() {
@@ -1693,7 +1697,7 @@ Email Address []:
 		if(is_file('/etc/suphp/suphp.conf')) {
 			replaceLine('/etc/suphp/suphp.conf', 'php="php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0);
 			//replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0);
-			replaceLine('/etc/suphp/suphp.conf', 'umask=0077', 'umask=0022', 0);
+			replaceLine('/etc/suphp/suphp.conf', 'umask=00', 'umask=0022', 0);
 		}
 
 		if(is_file('/etc/apache2/sites-enabled/000-default')) {
diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master
index e56b1d68274c84368ac7f5fa6ae313b56ba710bd..4930e253f98fddd7ebf6b1d34cc6cad147c7b008 100644
--- a/install/tpl/apache_apps.vhost.master
+++ b/install/tpl/apache_apps.vhost.master
@@ -15,6 +15,10 @@
     SetHandler None
   </FilesMatch>
   
+  <IfModule mod_headers.c>
+	RequestHeader unset Proxy early
+  </IfModule>
+  
   <IfModule mod_php5.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master
index 6b71378c84781abb8aef0706079a365b0591cad1..8aa41fafb18824a210faf3d9d15a0690db0e6b92 100644
--- a/install/tpl/apache_ispconfig.vhost.master
+++ b/install/tpl/apache_ispconfig.vhost.master
@@ -82,6 +82,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port">
 
   <IfModule mod_headers.c>
     Header always add Strict-Transport-Security "max-age=15768000"
+	RequestHeader unset Proxy early
   </IfModule>
 
   <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'>
diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master
index d2dc07ba10de47fe263b51f38998f2964f8f7af7..e1bb6d1849d40e2eb3681ac807c98860f07f6c1c 100644
--- a/install/tpl/nginx_apps.vhost.master
+++ b/install/tpl/nginx_apps.vhost.master
@@ -40,6 +40,7 @@ server {
 
                fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
                fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
+			   fastcgi_param   HTTP_PROXY              "";
 
                fastcgi_param   REMOTE_ADDR             $remote_addr;
                fastcgi_param   REMOTE_PORT             $remote_port;
diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master
index 849877020dfde0c7ff2bf15f1cdea5366d077f9e..c426e9d0faf4065153d763da703b638f3e7eba70 100644
--- a/install/tpl/nginx_ispconfig.vhost.master
+++ b/install/tpl/nginx_ispconfig.vhost.master
@@ -36,6 +36,7 @@ server {
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
                fastcgi_read_timeout 1200;
+			   fastcgi_param HTTP_PROXY "";
         }
 
         location ~ /\. {
diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php
index f9ef167fa1146fdea9897c232b208e35debda633..edbba27c7c2ea6cfaafd82333e74dbf5bc94848d 100755
--- a/interface/lib/app.inc.php
+++ b/interface/lib/app.inc.php
@@ -305,6 +305,7 @@ class app {
 		//print_r($_SESSION);
 		if(isset($_SESSION['s']['module']['name'])) {
 			$this->tpl->setVar('app_module', $_SESSION['s']['module']['name']);
+			$this->tpl->setVar('session_module', $_SESSION['s']['module']['name']);
 		}
 		if(isset($_SESSION['s']['user']) && $_SESSION['s']['user']['typ'] == 'admin') {
 			$this->tpl->setVar('is_admin', 1);
diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php
index f31cf81ce4b28b0588205f525d1662139b22f3ff..008fc954725078afafa8d51c14e00d5b19d7e23b 100644
--- a/interface/lib/classes/aps_guicontroller.inc.php
+++ b/interface/lib/classes/aps_guicontroller.inc.php
@@ -574,9 +574,13 @@ class ApsGUIController extends ApsBase
 			// Find out document_root and make sure no apps are installed twice to one location
 			if(in_array($postinput['main_domain'], $domains))
 			{
-				$docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain
+				$docroot = $app->db->queryOneRecord("SELECT document_root, web_folder FROM web_domain
                     WHERE domain = ?", $this->getMainDomain($postinput['main_domain']));
-				$new_path = $docroot['document_root'];
+				if(trim($docroot['web_folder']) == '') {
+					$new_path = $docroot['document_root'];
+				} else {
+					$new_path = $docroot['document_root'] . '/' . $docroot['web_folder'];
+				}
 				if(substr($new_path, -1) != '/') $new_path .= '/';
 				$new_path .= $main_location;
 
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 4c977572267277c6add039dd5f0b282446ad26ea..9c52f5097ce569cc7807798a11c09589d9ecf932 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -213,7 +213,10 @@ class auth {
 		return str_shuffle($password);
 	}
 
-	public function crypt_password($cleartext_password) {
+	public function crypt_password($cleartext_password, $charset = 'UTF-8') {
+		if($charset != 'UTF-8') {
+			$cleartext_password = mb_convert_encoding($cleartext_password, $charset, 'UTF-8');
+		}
 		$salt="$1$";
 		$base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
 		for ($n=0;$n<8;$n++) {
diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 22c1657d49d69e92c98cddf4e437622a9aa467d9..2147e550a047c153a3abd28553958fd553daabed 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -434,7 +434,7 @@ class remoting_sites extends remoting {
 		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_vhost_domain.tform.php', $client_id, $params, 'sites:web_domain:on_after_insert');
+		$domain_id = $this->insertQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $params, 'sites:web_vhost_domain:on_after_insert');
 		if ($readonly === true)
 			$app->db->query("UPDATE web_domain SET `sys_userid` = '1' WHERE domain_id = ?", $domain_id);
 		return $domain_id;
diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index e697810ce5a7d892fc25ebaf0b3dbd4d60b6a0d0..8547ff36902f81f6b7f7c9dc4a30cdfa7e407b98 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -284,7 +284,7 @@ class remoting_lib extends tform_base {
 				$startmodule=$_modules[0];
 			}
 		}
-		$usertheme = $params["usertheme"];
+		$usertheme = (isset($params["usertheme"]) && $params["usertheme"] != '')?$params["usertheme"]:'default';
 		$type = 'user';
 		$active = 1;
 		$insert_id = $app->functions->intval($insert_id);
diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 0c9cda5f5135eeca0300f8327b8e24a41177694f..f5e17932947d00c1e928b23fcce92bd5c73fb533 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -901,6 +901,9 @@ class tform_base {
 				case 'IDNTOUTF8':
 					$returnval = $app->functions->idn_decode($returnval);
 					break;
+				case 'TOLATIN1':
+					$returnval = mb_convert_encoding($returnval, 'ISO-8859-1', 'UTF-8');
+					break;
 				case 'TRIM':
 					$returnval = trim($returnval);
 					break;
@@ -992,6 +995,26 @@ class tform_base {
 					}
 				}
 				break;
+			case 'ISDOMAIN':
+				$error = false;
+				if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
+				if($validator['allowempty'] == 'y' && $field_value == '') {
+					//* Do nothing
+				} else {
+					if(function_exists('filter_var')) {
+						if(filter_var('check@'.$field_value, FILTER_VALIDATE_EMAIL) === false) {
+							$errmsg = $validator['errmsg'];
+							if(isset($this->wordbook[$errmsg])) {
+								$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
+							} else {
+								$this->errorMessage .= $errmsg."<br />\r\n";
+							}
+						}
+
+					} else $this->errorMessage .= "function filter_var missing <br />\r\n";
+				}
+				unset($error);
+				break;
 			case 'ISEMAIL':
 				$error = false;
 				if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
@@ -1243,6 +1266,10 @@ class tform_base {
 							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
 								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]));
 								$sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
+							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') {
+								// The password for the mail system needs to be converted to latin1 before it is hashed.
+								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1');
+								$sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
 							} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
 								$tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key]));
 								$record[$key] = $tmp['crypted'];
@@ -1271,6 +1298,10 @@ class tform_base {
 							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
 								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]));
 								$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
+							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') {
+								// The password for the mail system needs to be converted to latin1 before it is hashed.
+								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1');
+								$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
 							} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
 								$tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key]));
 								$record[$key] = $tmp['crypted'];
diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index b2881f57cc7e28a96554b8f585d17873100035fe..94c6d787875c28bec6d2b011c07454912f0eb036 100644
--- a/interface/lib/classes/tools_sites.inc.php
+++ b/interface/lib/classes/tools_sites.inc.php
@@ -157,7 +157,7 @@ class tools_sites {
 				$field = "domain";
 				$select = $field;
 			}
-			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field != ?) AND";
+			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field = ?) AND";
 		}
 		if ($_SESSION["s"]["user"]["typ"] == 'admin') {
 			$sql .= " 1";
diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
index aeb5623996009f08e3650628c4e0c871b5b50007..b6f0777511e36704594842fee37dc037e7b482e5 100644
--- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
+++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
@@ -80,8 +80,8 @@ class sites_web_vhost_domain_plugin {
 				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval(@$page_form->dataRecord["client_group_id"]));
 				$client_id = $app->functions->intval($client["client_id"]);
 			} else {
-				$client_group_id = $page_form->dataRecord["client_group_id"];
-				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval($page_form->dataRecord["client_group_id"]));
+				$tmp = $app->db->queryOneRecord('SELECT sys_groupid FROM web_domain WHERE domain_id = ?',$page_form->id);
+				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval($tmp['sys_groupid']));
 				$client_id = $app->functions->intval($client["client_id"]);
 			}
 
diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index 155a894ff2399850b01a8016a8a3e0dcae823261..46abebaac3cad2881d3aa19d38837ad271e48345 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -183,7 +183,7 @@ class page_action extends tform_actions {
 		 * (only the first time!)
 		 */
 		if (($section == 'domains') &&
-			($_SESSION['use_domain_module_old_value'] == '') &&
+			($_SESSION['use_domain_module_old_value'] == '' || $_SESSION['use_domain_module_old_value'] == 'n') &&
 			($server_config_array['domains']['use_domain_module'] == 'y')){
 			$sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " .
 				"SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " .
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index c3cc7f170dbc56afbf769b82522959e1485820d6..ac7f4c6fce708bc69ca256ddb63682e8adba8902 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -149,7 +149,7 @@ class page_action extends tform_actions {
 				if (trim($item['client_template_id']) != ''){
 					if ($text != '') $text .= '';
 					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
-					$text .= '<a href="#" class="button icons16 icoDelete"></a>';
+					$text .= '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a>';
 					$tmp = new stdClass();
 					$tmp->id = $item['assigned_template_id'];
 					$tmp->data = '';
@@ -173,7 +173,7 @@ class page_action extends tform_actions {
 			foreach($tplAdd as $item){
 				if (trim($item) != ''){
 					if ($text != '') $text .= '';
-					$text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
+					$text .= '<li>' . $tpl[$item]. '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a></li>';
 				}
 			}
 		}
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index 0fccee96014f21a993ad3dfda193fe0dc97a3041..a3718fab527f8b8bafab4bcf2ca6572663fdb4dc 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -635,6 +635,23 @@ $form["tabs"]['limits'] = array (
 			'value'  => array(''),
 			'name'  => 'default_dnsserver'
 		),*/
+		'dns_servers' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'MULTIPLE',
+			'separator' => ',',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'validators'    => array (  0 => array ( 'type' => 'CUSTOM',
+					'class' => 'validate_client',
+					'function' => 'check_used_servers',
+					'errmsg'=> 'dns_servers_used'),
+			),
+			'value'  => '',
+			'name'  => 'dns_servers'
+		),
 		'limit_dns_zone' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -845,6 +862,20 @@ $form["tabs"]['limits'] = array (
 			'rows'  => '',
 			'cols'  => ''
 		),
+		'limit_domainmodule' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array ( 'type' => 'ISINT',
+					'errmsg'=> 'limit_domainmodule_error_notint'),
+			),
+			'default' => '0',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '10',
+			'maxlength' => '10',
+			'rows'  => '',
+			'cols'  => ''
+		),
 		//#################################
 		// END Datatable fields
 		//#################################
diff --git a/interface/web/client/lib/lang/de_client_message_template.lng b/interface/web/client/lib/lang/de_client_message_template.lng
index 65e5fbfba31c76eb65c5a40bd920dd33e08de032..3c6ba86f3637ab0bdaa1692766ac22a2059809a4 100644
--- a/interface/web/client/lib/lang/de_client_message_template.lng
+++ b/interface/web/client/lib/lang/de_client_message_template.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['template_type_txt'] = 'Email type';
-$wb['template_name_txt'] = 'Template name';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['Email template'] = 'Email template';
-$wb['Settings'] = 'Setting';
-$wb['variables_txt'] = 'Variables';
-$wb['variables_description_txt'] = '(The username and password variables are only available in welcome emails.)';
-$wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
+$wb['template_type_txt'] = 'Email-Typ';
+$wb['template_name_txt'] = 'Name der Vorlage';
+$wb['subject_txt'] = 'Betreff';
+$wb['message_txt'] = 'Nachricht';
+$wb['Email template'] = 'Email-Vorlage';
+$wb['Settings'] = 'Einstellung';
+$wb['variables_txt'] = 'Variable';
+$wb['variables_description_txt'] = '(Die Benutzername und Passwort Variable können nur in Willkommensnachrichten verwendet werden.)';
+$wb['duplicate_welcome_error'] = 'Es kann nur eine Standard Willkommensnachrichten Vorlage geben. Bitte bearbeiten Sie die bestehende Vorlage anstatt eine neue hinzuzufügen.';
 ?>
diff --git a/interface/web/client/lib/lang/de_client_message_template_list.lng b/interface/web/client/lib/lang/de_client_message_template_list.lng
index d9c307ed5220b04a7657896edae66cf689411c0b..2eaadab3b64aa8110df93cf93f225ac7ef8b10b1 100644
--- a/interface/web/client/lib/lang/de_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/de_client_message_template_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Email templates';
-$wb['template_type_txt'] = 'Message for';
-$wb['template_name_txt'] = 'Template name';
+$wb['list_head_txt'] = 'Email Vorlagen';
+$wb['template_type_txt'] = 'Vorlage für';
+$wb['template_name_txt'] = 'Name der Vorlage';
 ?>
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index 05cf0f472933810c3a8dd035d87839828d4325a3..94a57cf500ba057a0447f41c206100e1d8b4b217 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -19,6 +19,7 @@ $wb["contact_firstname_txt"] = 'Contact firstname';
 $wb["contact_name_txt"] = 'Contact name';
 $wb["username_txt"] = 'Username';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["usertheme_txt"] = 'Theme';
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index b40219f2b2ee00e65a435ab17e59013a29770bb2..a9d8ad0337fffd85bf6d33c8c69b7c2260bd1af6 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -19,6 +19,7 @@ $wb["contact_firstname_txt"] = 'Contact firstname';
 $wb["contact_name_txt"] = 'Contact name';
 $wb["username_txt"] = 'Username';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["usertheme_txt"] = 'Theme';
diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng
index 72065264ec85d9d623cc6dd24a7830edcc197113..b1bec1916f781a71341ddf055b8ce500fecf5185 100644
--- a/interface/web/client/lib/lang/nl_client.lng
+++ b/interface/web/client/lib/lang/nl_client.lng
@@ -18,6 +18,7 @@ $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['contact_name_txt'] = 'Contactpersoon';
 $wb['username_txt'] = 'Gebruikersnaam';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['language_txt'] = 'Taal';
 $wb['usertheme_txt'] = 'Thema';
diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng
index 63d76bfb150b8071e551158b0a37a407be416d9b..c53d3eca25286023b962682be2327bda7085e87f 100644
--- a/interface/web/client/lib/lang/nl_reseller.lng
+++ b/interface/web/client/lib/lang/nl_reseller.lng
@@ -17,6 +17,7 @@ $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['contact_name_txt'] = 'Contactpersoon';
 $wb['username_txt'] = 'Gebruikersnaam';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['language_txt'] = 'Taal';
 $wb['usertheme_txt'] = 'Thema';
diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php
index fff4202064b27d4246ede0649bebaaf1ef378678..8ab091ef4d03517e9bec09940a07c3aeb18575ee 100644
--- a/interface/web/client/reseller_edit.php
+++ b/interface/web/client/reseller_edit.php
@@ -143,7 +143,7 @@ class page_action extends tform_actions {
 				if (trim($item['client_template_id']) != ''){
 					if ($text != '') $text .= '';
 					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
-					$text .= '<a href="#" class="button icons16 icoDelete"></a>';
+					$text .= '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a>';
 					$tmp = new stdClass();
 					$tmp->id = $item['assigned_template_id'];
 					$tmp->data = '';
@@ -167,7 +167,7 @@ class page_action extends tform_actions {
 			foreach($tplAdd as $item){
 				if (trim($item) != ''){
 					if ($text != '') $text .= '';
-					$text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
+					$text .= '<li>' . $tpl[$item]. '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a></li>';
 				}
 			}
 		}
diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index e119e594e4b68655387b0a6c8a87f1c8cf52ae68..86393c8e9d3a92fd5123629142d6746989dce6c8 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
@@ -158,5 +158,5 @@
 
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="{tmpl_var name='session_module'}/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index 139694697c45eb2e629360e8962e27cb23aa69ff..7a29df907d9f6233e82c3d9c0533d92564ed4b5e 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -450,7 +450,7 @@
 
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="{tmpl_var name='session_module'}/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
     </div>
 
diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm
index 7b3adf4cc9732ba7ba0dfe969cd388b83673d838..69b6552938673ecff837ca53c1c99c3776a15646 100644
--- a/interface/web/client/templates/reseller_edit_address.htm
+++ b/interface/web/client/templates/reseller_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng
index 9018a6f38f75fca1f37a77c1d2a26f9ca58d2e71..9dae1780026fa67b274955a7d4c941026aba7517 100644
--- a/interface/web/dns/lib/lang/en_dns_soa.lng
+++ b/interface/web/dns/lib/lang/en_dns_soa.lng
@@ -39,5 +39,5 @@ $wb['expire_range_error'] = 'Min. Expire time is 60 seconds.';
 $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
 ?>
diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index 2ecf4ac93defac20d7da0c268bd7d770c0cd2616..75a013b81123881a40d34f9a8a5a152896c0a446 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -159,6 +159,9 @@ if(count($_POST) > 0) {
 						$saved_password = stripslashes($mailuser['password']);
 						//* Check if mailuser password is correct
 						if(crypt(stripslashes($password), $saved_password) == $saved_password) {
+							//* Get the sys_user language of the client of the mailuser
+							$sys_user_lang = $app->db->queryOneRecord("SELECT language FROM sys_user WHERE default_group = ?", $mailuser['sys_groupid'] );
+							
 							//* we build a fake user here which has access to the mailuser module only and userid 0
 							$user = array();
 							$user['userid'] = 0;
@@ -168,7 +171,11 @@ if(count($_POST) > 0) {
 							$user['typ'] = 'user';
 							$user['email'] = $mailuser['email'];
 							$user['username'] = $username;
-							$user['language'] = $conf['language'];
+							if(is_array($sys_user_lang) && $sys_user_lang['language'] != '') {
+								$user['language'] = $sys_user_lang['language'];
+							} else {
+								$user['language'] = $conf['language'];
+							}
 							$user['theme'] = $conf['theme'];
 							$user['app_theme'] = $conf['theme'];
 							$user['mailuser_id'] = $mailuser['mailuser_id'];
@@ -209,8 +216,15 @@ if(count($_POST) > 0) {
 						$user = $app->db->toLower($user);
 						
 						if ($loginAs) $oldSession = $_SESSION['s'];
-						// Session regenerate causes login problems on some systems, have to find a better way. see Issue #3827
-						//if (!$loginAs) session_regenerate_id(true);
+						
+						// Session regenerate causes login problems on some systems, see Issue #3827
+						// Set session_regenerate_id to no in security settings, it you encounter
+						// this problem.
+						$app->uses('getconf');
+						$security_config = $app->getconf->get_security_config('permissions');
+						if(isset($security_config['session_regenerate_id']) && $security_config['session_regenerate_id'] == 'yes') {
+							if (!$loginAs) session_regenerate_id(true);
+						}
 						$_SESSION = array();
 						if ($loginAs) $_SESSION['s_old'] = $oldSession; // keep the way back!
 						$_SESSION['s']['user'] = $user;
diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php
index 5a63d8423b0c4b6a00d30073d1f76424818fb7cc..06fb0906c34e693f994c088274c03b265b61abb7 100644
--- a/interface/web/mail/form/mail_domain.tform.php
+++ b/interface/web/mail/form/mail_domain.tform.php
@@ -88,8 +88,7 @@ $form["tabs"]['domain'] = array (
 					'errmsg'=> 'domain_error_empty'),
 				1 => array ( 'type' => 'UNIQUE',
 					'errmsg'=> 'domain_error_unique'),
-				2 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/',
+				2 => array ( 'type' => 'ISDOMAIN',
 					'errmsg'=> 'domain_error_regex'),
 			),
 			'default' => '',
diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php
index 9b4ff8fefdb6d0bc572c9d1fd410e63cc5421971..8a19e66750d87347b225606e5c5a3f8325f2c5be 100644
--- a/interface/web/mail/form/mail_user.tform.php
+++ b/interface/web/mail/form/mail_user.tform.php
@@ -128,7 +128,7 @@ $form["tabs"]['mailuser'] = array(
 					'errmsg' => 'weak_password_txt'
 				)
 			),
-			'encryption'=> 'CRYPT',
+			'encryption'=> 'CRYPTMAIL',
 			'default' => '',
 			'value'  => '',
 			'width'  => '30',
diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng
index ba4fdd42a0c14b575dbf875828cf5cd7af89c086..7768662229f282e28b908b5ebab3884b89ce5d64 100644
--- a/interface/web/mail/lib/lang/en_mail_user.lng
+++ b/interface/web/mail/lib/lang/en_mail_user.lng
@@ -21,6 +21,7 @@ $wb["quota_error_isint"] = 'Mailbox size must be a number.';
 $wb["quota_txt"] = 'Quota (0 for unlimited)';
 $wb["server_id_txt"] = 'Aerver_id';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["maildir_txt"] = 'Maildir';
 $wb["postfix_txt"] = 'Enable receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng
index 775b425cf529e742e5520afd02ae30b11d7dc213..001282ccd9c5898c9e0ec9a9a7898dc9c6f64432 100644
--- a/interface/web/mail/lib/lang/fr_mail_user.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/hr_mail_user.lng b/interface/web/mail/lib/lang/hr_mail_user.lng
index b8d541faa4efd3e6c8435d60473a3fea02658ccd..50ebef717b8e1d5fd2caa99d67504cdef57f5f1a 100644
--- a/interface/web/mail/lib/lang/hr_mail_user.lng
+++ b/interface/web/mail/lib/lang/hr_mail_user.lng
@@ -17,6 +17,7 @@ $wb['quota_error_isint'] = 'Mailbox size must be a number.';
 $wb['quota_txt'] = 'Kvota';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'Å ifra';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Enable Receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/hu_mail_user.lng b/interface/web/mail/lib/lang/hu_mail_user.lng
index 97b07798d12298bf7d81c3ae220c15bbec81d6bb..a11f7d206631c82a8d2efb960ea67d2f4916395c 100644
--- a/interface/web/mail/lib/lang/hu_mail_user.lng
+++ b/interface/web/mail/lib/lang/hu_mail_user.lng
@@ -13,6 +13,7 @@ $wb['quota_error_isint'] = 'Mailbox méret mező csak szákot tartalmazhat';
 $wb['quota_txt'] = 'Korlát MB-ban kifejezve';
 $wb['server_id_txt'] = 'szerver_azonosító';
 $wb['password_txt'] = 'Jelszó';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'levelezőláda';
 $wb['postfix_txt'] = 'Bejövő engedélyezés';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/id_mail_user.lng b/interface/web/mail/lib/lang/id_mail_user.lng
index 22b3b8140deff71b2d3a63914e3d756c1da89320..9ae9474ec8a7403ee65cb8b156a7ddd64eb70c31 100644
--- a/interface/web/mail/lib/lang/id_mail_user.lng
+++ b/interface/web/mail/lib/lang/id_mail_user.lng
@@ -18,6 +18,7 @@ $wb['quota_error_isint'] = 'Ukuran Mailbox harus berupa angka.';
 $wb['quota_txt'] = 'Kuota';
 $wb['server_id_txt'] = 'id_server';
 $wb['password_txt'] = 'Kata Sandi';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Dapat Menerima';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/it_mail_user.lng b/interface/web/mail/lib/lang/it_mail_user.lng
index 76f30181238853db42315776b28edc19c0982bc5..e548a6b4f0845b90fe7aed8f04948f5c47f3f4cc 100644
--- a/interface/web/mail/lib/lang/it_mail_user.lng
+++ b/interface/web/mail/lib/lang/it_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Il valore per la dimensione della casella di posta d
 $wb['quota_txt'] = 'quota in MB';
 $wb['server_id_txt'] = 'server_id';
 $wb['password_txt'] = 'password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Abilita ricezione';
 $wb['access_txt'] = 'Abilita indirizzo';
diff --git a/interface/web/mail/lib/lang/ja_mail_user.lng b/interface/web/mail/lib/lang/ja_mail_user.lng
index 7e044b9a9484e1bf929b0ecc898ff44726141d40..6b3d2ea3ab556d5731910e18db87331e9535e451 100644
--- a/interface/web/mail/lib/lang/ja_mail_user.lng
+++ b/interface/web/mail/lib/lang/ja_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'メールボックスの最大数は数字で指定
 $wb['quota_txt'] = 'メールボックスの容量';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'パスワード';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'メールディレクトリ';
 $wb['postfix_txt'] = 'メールを受信する';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng
index f577efd4d3c9c7a082ae8b7ccade5b20768ea249..acc2da94e1b7108e93021201634a1d2cb19d6967 100644
--- a/interface/web/mail/lib/lang/nl_mail_user.lng
+++ b/interface/web/mail/lib/lang/nl_mail_user.lng
@@ -18,6 +18,7 @@ $wb['quota_error_isint'] = 'Mailbox grootte moet een numerieke waarde zijn.';
 $wb['quota_txt'] = 'Quota';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Ontvangen inschakelen';
 $wb['greylisting_txt'] = 'Greylisting inschakelen';
@@ -35,7 +36,7 @@ $wb['name_txt'] = 'Echte naam';
 $wb['name_optional_txt'] = '(Optioneel)';
 $wb['autoresponder_active'] = 'Inschakelen autoresponder';
 $wb['cc_txt'] = 'Stuur kopie naar';
-$wb['cc_error_isemail'] = 'Het "Stuur kopie naar" veld bevat geen geldig e-mail adres';
+$wb['cc_error_isemail'] = 'Het \"Stuur kopie naar\" veld bevat geen geldig e-mail adres';
 $wb['domain_txt'] = 'Domain';
 $wb['now_txt'] = 'Now';
 $wb['login_error_unique'] = 'Login is already taken.';
@@ -59,6 +60,6 @@ $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)';
 $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
 $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan';
-$wb['sender_cc_error_isemail'] = 'Het "Stuur uitgaande kopie aan" veld bevat geen geldig e-mail adres';
+$wb['sender_cc_error_isemail'] = 'Het \"Stuur uitgaande kopie aan\" veld bevat geen geldig e-mail adres';
 $wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 ?>
diff --git a/interface/web/mail/lib/lang/pl_mail_user.lng b/interface/web/mail/lib/lang/pl_mail_user.lng
index 58e5aba9d698d5e431f1c160998c366455d18b94..69974866dcbde53ff917a100ac526968b07f91f2 100644
--- a/interface/web/mail/lib/lang/pl_mail_user.lng
+++ b/interface/web/mail/lib/lang/pl_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Wielkość skrzynki pocztowej musi być liczbą.';
 $wb['quota_txt'] = 'Limit';
 $wb['server_id_txt'] = 'Serwer_id';
 $wb['password_txt'] = 'Hasło';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Zezwól na odbiór poczty';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/pt_mail_user.lng b/interface/web/mail/lib/lang/pt_mail_user.lng
index 4e7934af9c182826c6c45ce3bb5920bb1710d0da..f638554dc9f201a202d971c3a40fc53ae3e58705 100644
--- a/interface/web/mail/lib/lang/pt_mail_user.lng
+++ b/interface/web/mail/lib/lang/pt_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'O tamanho da caixa de correio deve ser um número.';
 $wb['quota_txt'] = 'Cota';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'Senha';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Permitir Recepção';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/ro_mail_user.lng b/interface/web/mail/lib/lang/ro_mail_user.lng
index 46938cd80e58a8e08a69f98b973e137f11906c74..af61d06b351c781594af837a85a21271aefb3e19 100644
--- a/interface/web/mail/lib/lang/ro_mail_user.lng
+++ b/interface/web/mail/lib/lang/ro_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Marimea Mailbox  trebuie s afie un numar';
 $wb['quota_txt'] = 'Quota';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Enable Receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/ru_mail_user.lng b/interface/web/mail/lib/lang/ru_mail_user.lng
index 5ed8b07f5de3ecd1add5283f99b3d4d3b13876eb..9214dc8ba7cb2e098b234be1899054c84d8bba16 100644
--- a/interface/web/mail/lib/lang/ru_mail_user.lng
+++ b/interface/web/mail/lib/lang/ru_mail_user.lng
@@ -13,6 +13,7 @@ $wb['quota_error_isint'] = 'Размер должен быть цифрой.';
 $wb['quota_txt'] = 'квота in MB';
 $wb['server_id_txt'] = 'server_id';
 $wb['password_txt'] = 'пароль';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Разрешить получение';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng
index 7dcdca3e68b1164adf643dc8580cdd59c0d94a83..9ded10e95510820c8d1cc1293c5bab7765d13860 100644
--- a/interface/web/mail/lib/lang/se_mail_user.lng
+++ b/interface/web/mail/lib/lang/se_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Epostkontots kvot måste vara en siffra.';
 $wb['quota_txt'] = 'kvot i MB';
 $wb['server_id_txt'] = 'server-id';
 $wb['password_txt'] = 'lösenord';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Aktivera mottagning';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/sk_mail_user.lng b/interface/web/mail/lib/lang/sk_mail_user.lng
index 115cab9aa96ee5780a2756009a2a32df44d636d5..b8d6114d82f550bcb4a683fbb79fa8e911bf03ad 100644
--- a/interface/web/mail/lib/lang/sk_mail_user.lng
+++ b/interface/web/mail/lib/lang/sk_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Veľkosť schránky, musí byť číslo.';
 $wb['quota_txt'] = 'Kvóta';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Heslo';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Mailová záložka';
 $wb['postfix_txt'] = 'Povoliť príjem';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/tr_mail_user.lng b/interface/web/mail/lib/lang/tr_mail_user.lng
index ebdcce2a92cc42d1e337ea685b5208755b8c285b..71241ec9f703393fbe42b07f6630ab1342a1c335 100644
--- a/interface/web/mail/lib/lang/tr_mail_user.lng
+++ b/interface/web/mail/lib/lang/tr_mail_user.lng
@@ -15,6 +15,7 @@ $wb['quota_error_isint'] = 'Posta kutusunun boyutu bir sayı olmalıdır.';
 $wb['quota_txt'] = 'Kota (sınırsız için 0 yazın)';
 $wb['server_id_txt'] = 'Sunucu kodu';
 $wb['password_txt'] = 'Parola';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Posta Klasörü';
 $wb['postfix_txt'] = 'Alım Etkin';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/mail_domain_del.php b/interface/web/mail/mail_domain_del.php
index 6941cd60821cf95d0235ba2eed93d7d5d43ed348..bce89695dc53ee1e016aec966a2d5030014b2db9 100644
--- a/interface/web/mail/mail_domain_del.php
+++ b/interface/web/mail/mail_domain_del.php
@@ -78,7 +78,7 @@ class page_action extends tform_actions {
 		}
 
 		// Delete all spamfilters that belong to this domain
-		$records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = ?", '%@' . $domain);
+		$records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email like ?", '%@' . $domain);
 		foreach($records as $rec) {
 			$app->db->datalogDelete('spamfilter_users', 'id', $rec['id']);
 		}
diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index aedcd2249b9e8da4a1a6a365d98c4dc634935fbf..a79d8f8ff95e0ee9cd8082e8dfc91d45b035abe8 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -143,7 +143,6 @@ class page_action extends tform_actions {
 			if($domain["domain"] != $app->functions->idn_encode($_POST["email_domain"])) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
 		}
 
-
 		//* if its an insert, check that the password is not empty
 		if($this->id == 0 && $_POST["password"] == '') {
 			$app->tform->errorMessage .= $app->tform->lng("error_no_pwd")."<br>";
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 4cb4b51c849a52aaada14fa32befb5b12bb15c0d..bcab744de3b54ca7b45efa541061d90c459ef64a 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -29,7 +29,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -45,7 +45,8 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9">
+	                <input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mailuser/lib/lang/en_mail_user_password.lng b/interface/web/mailuser/lib/lang/en_mail_user_password.lng
index 43c114a81cb0e99f2280f9ca42f4d29544534fe8..1fae586e68d97435bbdd9aaf94bfbf06354e8a8e 100644
--- a/interface/web/mailuser/lib/lang/en_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/en_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
\ No newline at end of file
diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_password.lng b/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
index cdf9674e702c16e13a9c7ab9760eea34097e2fce..254608275e3c34bf91021525cadb588027bc2829 100644
--- a/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 ?>
diff --git a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
index c5fc584c09f961d8c899500845f5511746ae348c..98b28cebf8da1c80a59b07966403fadfe158a033 100644
--- a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
@@ -28,6 +28,6 @@
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button"
-                    value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+                    value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_autoresponder_edit.php">{tmpl_var name='btn_save_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
\ No newline at end of file
diff --git a/interface/web/mailuser/templates/mail_user_password_edit.htm b/interface/web/mailuser/templates/mail_user_password_edit.htm
index 1afd11052cc1dbc69840e348086957771a14600a..b487a1e9b2877c6f041b3a71776950c9ebb9c8ae 100644
--- a/interface/web/mailuser/templates/mail_user_password_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_password_edit.htm
@@ -15,7 +15,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -31,7 +31,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index a87a33dc5f05b357b9f48765e5742325492863a4..0ddea5d27eaf5208d10d81b7c604bf80e8a50572 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -29,7 +29,15 @@ if(is_array($tmp_rec)) {
 		foreach($tmp_array as $database_name => $data) {
 			$db_name = $data['database_name'];
 
-			$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			//$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			$temp = $app->db->queryOneRecord("SELECT sys_groupid, database_quota FROM web_database WHERE web_database.database_name = ?", $db_name);
+			if($tmp['sys_groupid'] > 0) {
+				$client = $app->db->queryOneRecord("SELECT client.username FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?", $tmp['sys_groupid']);
+				$temp['username'] = $client['username'];
+			} else {
+				$temp['username'] = 'admin';
+			}
+			
 			if(is_array($temp) && !empty($temp)) {
 				$monitor_data[$server_id.'.'.$db_name]['database_name'] = $data['database_name'];
 				$monitor_data[$server_id.'.'.$db_name]['client'] = isset($temp['username']) ? $temp['username'] : '';
diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng
index 6aaa1aae5fcac2e22a6a5deed5264aae2822836b..60a06c266a4cbbf04b98e8b54c4278ae8e5cb378 100644
--- a/interface/web/sites/lib/lang/nl_web_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_domain.lng
@@ -21,7 +21,7 @@ $wb['active_txt'] = 'Actief';
 $wb['document_root_txt'] = 'Documentroot';
 $wb['system_user_txt'] = 'Linux gebruiker';
 $wb['system_group_txt'] = 'Linux Groep';
-$wb['ip_address_txt'] = 'IP-Adres';
+$wb['ip_address_txt'] = 'IPv4 adres';
 $wb['vhost_type_txt'] = 'VHost type';
 $wb['hd_quota_txt'] = 'Harddisk quota';
 $wb['traffic_quota_txt'] = 'Traffic quota';
@@ -72,7 +72,7 @@ $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-Adres';
+$wb['ipv6_address_txt'] = 'IPv6 adres';
 $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/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index 23ca63306e965acd1f047aeb19bda9931e6aeb48..6940d62c9e80b57ba9a25d207464e3619a421b2c 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -21,7 +21,7 @@ $wb['active_txt'] = 'Actief';
 $wb['document_root_txt'] = 'Document Root';
 $wb['system_user_txt'] = 'Linux gebruiker';
 $wb['system_group_txt'] = 'Linux Groep';
-$wb['ip_address_txt'] = 'IP-Adres';
+$wb['ip_address_txt'] = 'IPv4 adres';
 $wb['vhost_type_txt'] = 'VHost type';
 $wb['hd_quota_txt'] = 'Harddisk quota';
 $wb['traffic_quota_txt'] = 'Traffic quota';
@@ -49,7 +49,7 @@ $wb['error_ssl_organisation_empty'] = 'SSL Organisatie is niet ingvuld.';
 $wb['error_ssl_organisation_unit_empty'] = 'SSL Organisatie afdeling is niet ingvuld.';
 $wb['error_ssl_country_empty'] = 'SSL land is niet ingvuld.';
 $wb['client_group_id_txt'] = 'Klant';
-$wb['stats_password_txt'] = 'Webstatististieken wachtwoord';
+$wb['stats_password_txt'] = 'Webstatistieken wachtwoord';
 $wb['allow_override_txt'] = 'Apache AllowOverride';
 $wb['limit_web_quota_free_txt'] = 'Max. beschikbare harddisk quota';
 $wb['ssl_state_error_regex'] = 'Ongeldige SSL Provincie/staat. Geldige karakters zijn: a-z, 0-9 and .,-_';
@@ -62,8 +62,8 @@ $wb['redirect_error_regex'] = 'Ongeldig redirect pad. Heldige redirects zijn bij
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
 $wb['traffic_quota_exceeded_txt'] = 'Traffic quota overschreden';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatististieken gebruikersnaam';
-$wb['stats_type_txt'] = 'Webstatististieken programma';
+$wb['stats_user_txt'] = 'Webstatistieken gebruikersnaam';
+$wb['stats_type_txt'] = 'Webstatistieken programma';
 $wb['custom_php_ini_txt'] = 'Custom php.ini instellingen';
 $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
 $wb['none_txt'] = 'None';
@@ -73,7 +73,7 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Certificaat opslaan';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Certificaat verwijderen';
-$wb['ipv6_address_txt'] = 'IPv6-Adres';
+$wb['ipv6_address_txt'] = 'IPv6 adres';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -101,10 +101,10 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
 $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
 $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
 $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
+$wb['repeat_password_txt'] = 'Herhaal wachtwoord';
+$wb['password_mismatch_txt'] = 'De wachtwoorden zijn ongelijk.';
+$wb['password_match_txt'] = 'De wachtwoorden zijn gelijk.';
 $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
 $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
 $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index c040b38ea6352d0b1e1c19c86bc0f149f525064f..d741b348a88e5cacb6999a7fcb651a9c9ca1a337 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -32,7 +32,7 @@
                                     <tmpl_if name="download_available">
 										<button class="btn btn-default formbutton-default" type="button" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=download&backup_id={tmpl_var name='backup_id'}">{tmpl_var name="download_backup_txt"}</button>
 									</tmpl_if>
-									<button class="button iconstxt icoDelete" type="button" onclick="confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
+									<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
                                 </div>
                             </td>
                         </tr>
diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm
index 06cc8a136e6402903b675f90d42174020bc24c48..1cd3ce87c5a7f5929ebd8810eeec2647cd1620a9 100644
--- a/interface/web/sites/templates/web_vhost_domain_redirect.htm
+++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm
@@ -31,7 +31,8 @@
             </div>
 			<div class="form-group nginx">
                 <label for="rewrite_rules" class="col-sm-3 control-label">{tmpl_var name='rewrite_rules_txt'}</label>
-                <div class="col-sm-9"><textarea class="form-control" name="rewrite_rules" id="rewrite_rules" rows='10' cols='50'>{tmpl_var name='rewrite_rules'}</textarea></div>&nbsp;<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b><br><br>&nbsp;break<br>&nbsp;if<br>&nbsp;return<br>&nbsp;rewrite<br>&nbsp;set<br><br>&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a>
+                <div class="col-sm-9"><textarea class="form-control" name="rewrite_rules" id="rewrite_rules" rows='10' cols='50'>{tmpl_var name='rewrite_rules'}</textarea>
+				<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b>&nbsp;break&nbsp;if&nbsp;return&nbsp;rewrite&nbsp;set<br />&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a></div>
             </div>
 			<div class="form-group">
 				<label class="col-sm-3 control-label">{tmpl_var name='rewrite_to_https_txt'}</label>
diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php
index 33c2422f45735fbe6bb35e60d71dbd808380fb35..2377ad288acf3e353e2bc7e5c288ed43c826fe12 100644
--- a/interface/web/sites/web_childdomain_edit.php
+++ b/interface/web/sites/web_childdomain_edit.php
@@ -131,8 +131,10 @@ class page_action extends tform_actions {
 			}
 			$app->tpl->setVar("domain_option", $domain_select);
 			if($this->_childdomain_type == 'subdomain') {
-				$this->dataRecord['domain'] = substr($this->dataRecord["domain"], 0, strlen($this->dataRecord['domain']) - strlen($selected_domain) - 1);
+				//$this->dataRecord['domain'] = substr($this->dataRecord["domain"], 0, strlen($this->dataRecord['domain']) - strlen($selected_domain) - 1);
+				$this->dataRecord["domain"] = str_replace('.'.$selected_domain, '', $this->dataRecord["domain"]);
 			}
+			
 		} else {
 			if($this->_childdomain_type == 'subdomain') {
 				// Get the record of the parent domain
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 6f843571a3b7d15653ae0515ee8e4b74899a45fa..10dde97a49e2d6e4f6398170f3e9d88a628f2fae 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -802,11 +802,16 @@ class page_action extends tform_actions {
 				$domain_select .= "<option value=''></option>\r\n";
 			}
 			$app->tpl->setVar("domain_option", $domain_select);
-		} else {
+			
+			// remove the parent domain part of the domain name before we show it in the text field.
+			if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$selected_domain, '', $this->dataRecord["domain"]);
 
+		
+		} else {
 			// remove the parent domain part of the domain name before we show it in the text field.
 			if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"], '', $this->dataRecord["domain"]);
 		}
+		
 		if($this->_vhostdomain_type != 'domain') $app->tpl->setVar("domain", $this->dataRecord["domain"]);
 
 		// check for configuration errors in sys_datalog
diff --git a/interface/web/themes/default/assets/images/ajax-loader.gif b/interface/web/themes/default/assets/images/ajax-loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7c4804ebcaec27b830873a1ff4d157f1bde00ef1
Binary files /dev/null and b/interface/web/themes/default/assets/images/ajax-loader.gif differ
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index d791b19cba5ae3957e729e42977115fea72abc3e..e4722ba8c5862760d0293c8487fa8c392470fa2f 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -136,6 +136,15 @@ var ISPConfig = {
 		});
 		$('[data-toggle="tooltip"]').tooltip({
 		});
+		// grab all password fields and set the readonly prop to prevent password managers to fill in new password
+		$('input[type="password"]').each(function() {
+			$(this).prop('readonly', true)
+			.tooltip({title: "Click to set", placement: "left"});
+		});
+		$('input[type="password"]').on('click focus', function() { 
+			$(this).prop('readonly', false);
+			$(this).tooltip('destroy');
+		});
 		
 		ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
 	},
@@ -493,12 +502,12 @@ var ISPConfig = {
 		if(addTplId > 0) {
 			var newVal = tpl_add.split('/');
 			ISPConfig.new_tpl_add_id += 1;
-			var delbtn = $('<a href="#"></a>').attr('class', 'button icons16 icoDelete').click(function(e) {
+			var delbtn = $('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
 				e.preventDefault();
 				ISPConfig.delAdditionalTemplate($(this).parent().attr('rel'));
 			});
 			newVal[newVal.length] = 'n' + ISPConfig.new_tpl_add_id + ':' + addTplId;
-			$('<li>' + addTplText + '</li>').attr('rel', 'n' + new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
+			$('<li>' + addTplText + '</li>').attr('rel', 'n' + ISPConfig.new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
 			$('#template_additional').val(newVal.join('/'));
 			alert('additional template ' + addTplText + ' added to customer');
 		} else {
@@ -550,7 +559,6 @@ var ISPConfig = {
 	}
 };
 
-
 $(document).on("change", function(event) {
 	var elName = event.target.localName;
 	if ($("#pageForm .table #Filter").length > 0 && elName == 'select') {
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index a54f3cb89ab7d58e15c3364dce41f20a1801a824..0dd4a563be185f3fc2684b375d47a0453b94c13f 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-var ISPConfig={pageFormChanged:false,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:false,tabChangeDiscard:false,requestsRunning:0,indicatorCompleted:false,registeredHooks:new Array(),new_tpl_add_id:0,options:{useLoadIndicator:false,useComboBox:false},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(a){},registerHook:function(a,c){if(!ISPConfig.registeredHooks[a]){ISPConfig.registeredHooks[a]=new Array()}var b=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][b]=c},callHook:function(a,c){if(!ISPConfig.registeredHooks[a]){return}for(var b=0;b<ISPConfig.registeredHooks[a].length;b++){var d=ISPConfig.registeredHooks[a][b];d(a,c)}},resetFormChanged:function(){ISPConfig.pageFormChanged=false},showLoadIndicator:function(){document.body.style.cursor="wait";if(ISPConfig.options.useLoadIndicator==true){ISPConfig.requestsRunning+=1;if(ISPConfig.requestsRunning<2){var a=$("#ajaxloader");if(a.length<1){a=$('<div id="ajaxloader" style="display: none;"></div>');a.appendTo("body")}var b=$("#content");if(b.length<1){return}ISPConfig.indicatorCompleted=false;var d=b.offset().left+150;var c=b.offset().top+150;a.css({left:d,top:c}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=true;if(ISPConfig.requestsRunning<1){$(this).fadeOut("fast",function(){$(this).hide()})}})}}},hideLoadIndicator:function(){document.body.style.cursor="";ISPConfig.requestsRunning-=1;if(ISPConfig.requestsRunning<1){ISPConfig.requestsRunning=0;if(ISPConfig.indicatorCompleted==true){$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()})}}},onAfterSideNavLoaded:function(){if(ISPConfig.options.useComboBox==true){$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:true,allowClear:true})}},onAfterContentLoad:function(a,b){if(!b){b=""}else{b="&"+b}if(ISPConfig.options.useComboBox==true){$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:true,allowClear:true,formatResult:function(c){if(c.id&&$(c.element).parent().hasClass("flags")){return'<span class="flags flag-'+c.id.toLowerCase()+'">'+c.text+"</span>"}else{return c.text}},formatSelection:function(c){if(c.id&&$(c.element).parent().hasClass("flags")){return'<span class="flags flag-'+c.id.toLowerCase()+'">'+c.text+"</span>"}else{return c.text}}}).on("change",function(c){if($("#pageForm .table #Filter").length>0){$("#pageForm .table #Filter").trigger("click")}})}$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:true,todayBtn:"linked",bootcssVer:3,fontAwesome:true,autoclose:true,minView:"month"});$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:true,todayBtn:"linked",bootcssVer:3,fontAwesome:true,autoclose:true});ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(d,e,c){var b=arguments[3];if(!c){c=false}if(!c||window.confirm(c)){var a=$.ajax({type:"POST",url:e,data:$("#"+d).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(g,i,f){if(b){alert(b)}if(f.responseText.indexOf("HEADER_REDIRECT:")>-1){var h=f.responseText.split(":");ISPConfig.loadContent(h[1])}else{if(f.responseText.indexOf("LOGIN_REDIRECT:")>-1){document.location.href="/index.php"}else{$("#pageContent").html(f.responseText);ISPConfig.onAfterContentLoad(e,$("#"+d).serialize());ISPConfig.pageFormChanged=false}}ISPConfig.hideLoadIndicator()},error:function(f,i,h){ISPConfig.hideLoadIndicator();var g=f.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(c,d){var b=function(n){var h,j=n.contentWindow.document.body.innerHTML;try{h=JSON.parse(j)}catch(k){h=j}var o=$("<div></div>").html(h);var f="";var l=o.find("#OKMsg").html();if(l){f='<div id="OKMsg">'+l+"</div>"}var i=o.find("#errorMsg").html();if(i){f=f+'<div id="errorMsg">'+i+"</div>"}var m=o.find('input[name="_csrf_key"]').val();var g=o.find('input[name="_csrf_id"]').val();f=f+'<input type="hidden" name="_csrf_id" value="'+g+'" /><input type="hidden" name="_csrf_key" value="'+m+'" />';return f};var a="ajaxUploader-iframe-"+Math.round(new Date().getTime()/1000);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+a+'" id="'+a+'"/>');$("#"+a).load(function(){var e=b(this);$("#errorMsg").remove();$("#OKMsg").remove();$('input[name="_csrf_key"]').remove();$('input[name="_csrf_id"]').remove();$('input[name="id"]').before(e);$(this).remove()});$('input[type="file"]').closest("form").attr({target:a,action:d}).submit()},capp:function(b,c){var a=$.ajax({type:"GET",url:"capp.php",data:"mod="+b+((c!=undefined)?"&redirect="+c:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(e,h,d){if(d.responseText!=""){if(d.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=d.responseText.split(":");ISPConfig.loadContent(g[1])}else{if(d.responseText.indexOf("URL_REDIRECT:")>-1){var f=d.responseText.substr(d.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=f}else{}}}ISPConfig.loadMenus();ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful."+b)}})},loadContent:function(b){var c=arguments[1];var a=$.ajax({type:"GET",url:b,data:(c?c:null),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(e,h,d){if(d.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=d.responseText.split(":");ISPConfig.loadContent(g[1])}else{if(d.responseText.indexOf("URL_REDIRECT:")>-1){var f=d.responseText.substr(d.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=f}else{$("#pageContent").html(d.responseText);ISPConfig.onAfterContentLoad(b,(c?c:null));ISPConfig.pageFormChanged=false}}ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 113")}})},loadContentRefresh:function(b){if($("#refreshinterval").val()>0){var a=$.ajax({type:"GET",url:b,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#pageContent").html(c.responseText);ISPConfig.onAfterContentLoad(b,"refresh="+document.getElementById("refreshinterval").value);ISPConfig.pageFormChanged=false},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful."+b)}});setTimeout("ISPConfig.loadContentRefresh('"+b+"&refresh="+document.getElementById("refreshinterval").value+"')",document.getElementById("refreshinterval").value*1000*60)}},loadInitContent:function(){var b=$("#pageContent").attr("data-startpage");if(!b){b="dashboard/dashboard.php"}var a=$.ajax({type:"GET",url:b,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,f,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var e=c.responseText.split(":");ISPConfig.loadContent(e[1])}else{$("#pageContent").html(c.responseText);ISPConfig.onAfterContentLoad("dashboard/dashboard.php","");ISPConfig.pageFormChanged=false}ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus();ISPConfig.keepalive();setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(c){}},1000)},loadMenus:function(){var b=$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#sidebar").html(c.responseText);ISPConfig.onAfterSideNavLoaded();ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 115")}});var a=$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#topnav-container").html(c.responseText);ISPConfig.loadPushyMenu()},error:function(c){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(c,e,d){if(ISPConfig.requestsRunning>0){return false}document.pageForm.next_tab.value=c;var b=$("form#pageForm").find('[name="id"]');var f=null;if(b.length>0){f=b.val()}if(ISPConfig.tabChangeDiscard=="y"&&!d){if((b.length<1||f)&&(ISPConfig.pageFormChanged==false||window.confirm(ISPConfig.tabChangeDiscardTxt))){var a=c;if(f){ISPConfig.loadContent(e,{next_tab:a,id:f})}else{ISPConfig.loadContent(e,{next_tab:a})}}else{return false}}else{if(f&&ISPConfig.tabChangeWarning=="y"&&ISPConfig.pageFormChanged==true){if(window.confirm(ISPConfig.tabChangeWarningTxt)){ISPConfig.submitForm("pageForm",e)}else{var a=c;if(f){ISPConfig.loadContent(e,{next_tab:a,id:f})}else{ISPConfig.loadContent(e,{next_tab:a})}}}else{ISPConfig.submitForm("pageForm",e)}}},confirm_action:function(b,a){if(window.confirm(a)){ISPConfig.loadContent(b)}},loadContentInto:function(b,c){var a=$.ajax({type:"GET",url:c,dataType:"html",beforeSend:function(){},success:function(e,f,d){$("#"+b).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(b,c,d){var a=$.ajax({type:"GET",url:c,dataType:"html",beforeSend:function(){},success:function(h,l,g){var j=g.responseText;var k=j.split("#");el=document.getElementById(b);el.innerHTML="";for(var f=0;f<k.length;++f){var e=document.createElement("option");e.appendChild(document.createTextNode(k[f]));e.value=k[f];el.appendChild(e)}if(typeof(d)!="undefined"){d(b,c)}},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){var a=$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(c,d,b){setTimeout(function(){ISPConfig.keepalive()},1000000)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var e=$("#template_additional").val();var a=$("#tpl_add_select").val().split("|",2);var d=a[0];var f=a[1];if(d>0){var c=e.split("/");ISPConfig.new_tpl_add_id+=1;var b=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(g){g.preventDefault();ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});c[c.length]="n"+ISPConfig.new_tpl_add_id+":"+d;$("<li>"+f+"</li>").attr("rel","n"+new_tpl_add_id).append(b).appendTo("#template_additional_list ul");$("#template_additional").val(c.join("/"));alert("additional template "+f+" added to customer")}else{alert("no additional template selcted")}},delAdditionalTemplate:function(d){var a=$("#template_additional").val();if(d){var l=$("#template_additional_list ul").find('li[rel="'+d+'"]').eq(0);var k=l.text();l.remove();var j=a.split("/");var b=new Array();for(var e=0;e<j.length;e++){var f=j[e].split(":",2);if(f.length==2&&f[0]==d){continue}b[b.length]=j[e]}$("#template_additional").val(b.join("/"));alert("additional template "+k+" deleted from customer")}else{if(a!=""){var c=document.getElementById("tpl_add_select").value.split("|",2);var h=c[0];var k=c[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var i=$(this).text();if(i==k){$(this).remove();return false}return this});var b=a;var g=new RegExp("(^|/)"+h+"(/|$)");b=b.replace(g,"");b=b.replace("//","/");$("#template_additional").val(b);alert("additional template "+k+" deleted from customer")}else{alert("no additional template selcted")}}}};$(document).on("change",function(a){var b=a.target.localName;if($("#pageForm .table #Filter").length>0&&b=="select"){a.preventDefault();$("#pageForm .table #Filter").trigger("click")}if(b=="select"||b=="input"||b=="textarea"){if($(a.target).hasClass("no-page-form-change")==false){ISPConfig.pageFormChanged=true}}});$(document).on("click","a[data-load-content],button[data-load-content]",function(b){b.preventDefault();$("html, body").animate({scrollTop:0},1000);var a=$(this).attr("data-load-content");if(!a){return this}ISPConfig.loadContent(a)});$(document).on("click","a[data-capp],button[data-capp]",function(b){b.preventDefault();$("html, body").animate({scrollTop:0},1000);var a=$(this).attr("data-capp");if(!a){return this}ISPConfig.capp(a)});$(document).on("click","a[data-submit-form],button[data-submit-form]",function(d){d.preventDefault();$("html, body").animate({scrollTop:0},1000);var b=$(this);var a=b.attr("data-form-action");var c=b.attr("data-submit-form");if(b.attr("data-form-upload")=="true"){ISPConfig.submitUploadForm(c,a)}else{ISPConfig.submitForm(c,a)}});$(document).bind("keypress",function(a){if(a.which=="13"&&$("#pageForm .table #Filter").length>0&&$(a.target).hasClass("ui-autocomplete-input")==false){a.preventDefault();$("#pageForm .table #Filter").trigger("click")}if(a.which=="13"&&$(".tab-content button.formbutton-success").length>0&&a.target.localName!="textarea"&&$(a.target).is(":input")){a.preventDefault();$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click")}});$(document).on("click","th[data-column]",function(h){var i=$(this);var d=i.attr("data-column");if(!d){return this}if($("#pageForm .table #Filter").length>0&&i.attr("data-sortable")!="false"){var c=$("#Filter");var a=c.attr("data-form-action");var f=c.attr("data-submit-form");var b=i.attr("data-ordered");var g="?";if(a.indexOf("?")>=0){g="&"}a=a+g+"orderby="+d;ISPConfig.submitForm(f,a);$(document).ajaxComplete(function(){var e=$('#pageForm .table th[data-column="'+d+'"]');e.parent().children("th[data-column]").removeAttr("data-ordered");if(b&&b=="asc"){e.attr("data-ordered","desc")}else{e.attr("data-ordered","asc")}})}});$(document).on("click",".addPlaceholder",function(){var a=$(this).text();var b=$(this).siblings(":input");b.insertAtCaret(a)});$(document).on("click",".addPlaceholderContent",function(){var b=$(this).find(".addPlaceholderContent").text();var a=$(this).siblings(":input");a.insertAtCaret(b)});$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked")){var c=$(this).parent().attr("data-check-fields");var b=c.split(/,/);for(var a=0;a<b.length;a++){var d=b[a];$('input[type="checkbox"][name="'+d+'"]').prop("checked",true)}}});$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if($(this).is(":checked")==false){var c=$(this).parent().attr("data-uncheck-fields");var b=c.split(/,/);for(var a=0;a<b.length;a++){var d=b[a];$('input[type="checkbox"][name="'+d+'"]').prop("checked",false)}}});$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(d){if(document.selection){this.focus();sel=document.selection.createRange();sel.text=a;this.focus()}else{if(this.selectionStart||this.selectionStart=="0"){var c=this.selectionStart;var b=this.selectionEnd;var e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(b,this.value.length);this.focus();this.selectionStart=c+a.length;this.selectionEnd=c+a.length;this.scrollTop=e}else{this.value+=a;this.focus()}}})}});$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"});ISPConfig.loadInitContent();$("#searchform").submit(function(a){a.preventDefault()});$("#pageForm").submit(function(a){if($("#pageForm .table #Filter").length>0){a.preventDefault()}});$.fn.setCursorPosition=function(c){var b=$(this).get(0);if(b.setSelectionRange){b.setSelectionRange(c,c)}else{if(b.createTextRange){var a=b.createTextRange();a.collapse(true);if(c<0){c=$(this).val().length+c}a.moveEnd("character",c);a.moveStart("character",c);a.select()}}};$.fn.getCursorPosition=function(){var c=0;var b=$(this).get(0);if(typeof b.selectionStart==="number"){c=b.selectionDirection=="backward"?b.selectionStart:b.selectionEnd}else{if(document.selection){this.focus();var a=document.selection.createRange();a.moveStart("character",-b.value.length);c=a.text.length}}return c}});
\ No newline at end of file
+var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index fedee6f0f2620eccf690a9693f9c843e570afa60..aa383ab6e7edf7791dedf87613422ab1e6063f1d 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -31,7 +31,7 @@ body {
     content: ":"; }
 
 .formbutton-default {
-  padding: 6px 30px;
+  padding: 6px 10px;
   border-bottom-style: solid;
   border-bottom-width: 2px;
   font-size: 12px;
@@ -694,4 +694,17 @@ span.flag-zw {background-position:0 -5435px}
 .input-group-field:last-child {
     border-top-left-radius:0;
     border-bottom-left-radius:0;
+}
+
+#ajaxloader {
+    position: absolute;
+    width: 325px;
+    height: 150px;
+    background: #ffffff url('../images/ajax-loader.gif') no-repeat center center;
+    border: solid 2px #e1e1e1;
+    border-radius: 10px;
+    /*background: rgba(255, 255, 255, 0.85);*/
+    padding: 20px;
+    text-align:center;
+    z-index: 100;
 }
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 4477ceae49cd43eae60b0ce7db2a929cdffd2f1a..5f41897f0ecb45a95722d477ca37379473845873 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url('../images/ajax-loader.gif') no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}
\ No newline at end of file
diff --git a/security/security_settings.ini b/security/security_settings.ini
index d3b8d9c743393e01e831780fc66cae887372189d..5cc381e3cde02bd8da1c69e14af5d9cad9a7c8b2 100644
--- a/security/security_settings.ini
+++ b/security/security_settings.ini
@@ -16,6 +16,7 @@ admin_allow_software_packages=superadmin
 admin_allow_software_repo=superadmin
 remote_api_allowed=yes
 password_reset_allowed=yes
+session_regenerate_id=yes
 
 [ids]
 ids_enabled=no
diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master
index 7d6d66590aa1c593525bb0faeafc34ee88d56526..47d35304f609f4e4e3405d06ad33c46e146dce3a 100644
--- a/server/conf/apache_apps.vhost.master
+++ b/server/conf/apache_apps.vhost.master
@@ -14,6 +14,10 @@
   <FilesMatch "\.ph(p3?|tml)$">
     SetHandler None
   </FilesMatch>
+  
+  <IfModule mod_headers.c>
+	RequestHeader unset Proxy early
+  </IfModule>
 
   {tmpl_if name="enable_spdy" op="==" value="y"}
   <IfModule spdy_module>
diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master
index 1101d193058a1f5f438f257668da6b38d4d84cc7..ed5e3a49ae5160842cfbc25bbd25e7e22f6c4822 100644
--- a/server/conf/nginx_apps.vhost.master
+++ b/server/conf/nginx_apps.vhost.master
@@ -32,6 +32,7 @@ server {
 
                fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
                fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
+			   fastcgi_param   HTTP_PROXY              "";
 
                fastcgi_param   REMOTE_ADDR             $remote_addr;
                fastcgi_param   REMOTE_PORT             $remote_port;
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index f057088ac64a4adf580db10f18bf3b2187a68c8f..e2fd17bf06c0695c56825ab40cee808de2f74351 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -7,6 +7,7 @@ server {
 <tmpl_if name='ssl_enabled'>
         listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+		ssl_ciphers EECDH+AESGCM:EDH+AESGCM:EECDH:EDH:!MD5:!RC4:!LOW:!MEDIUM:!CAMELLIA:!ECDSA:!DES:!DSS:!3DES:!NULL;
 <tmpl_if name='ipv6_enabled'>
         listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 </tmpl_if>
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index bb2d71d7d51976e4bb61306fd53ac1e6b428b4c9..442d630b4ee8652b9f7bef9ab439f4ca48664333 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -430,7 +430,8 @@
 <tmpl_else>
 <tmpl_if name='rewrite_to_https' op='==' value='y'>
         RewriteCond %{HTTPS} off
-        <tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/</tmpl_if>
+        <tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
+</tmpl_if>
         RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 </tmpl_if>
 </tmpl_if>
diff --git a/server/cron_debug.php b/server/cron_debug.php
new file mode 100644
index 0000000000000000000000000000000000000000..615a56d7434b64912d6b114874d20164db0a7117
--- /dev/null
+++ b/server/cron_debug.php
@@ -0,0 +1,72 @@
+<?php
+
+/*
+Copyright (c) 2007-2016, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
+require SCRIPT_PATH."/lib/config.inc.php";
+require SCRIPT_PATH."/lib/app.inc.php";
+
+set_time_limit(0);
+ini_set('error_reporting', E_ALL & ~E_NOTICE);
+
+// make sure server_id is always an int
+$conf['server_id'] = intval($conf['server_id']);
+
+// Load required base-classes
+$app->uses('ini_parser,file,services,getconf,system,cron,functions');
+$app->load('libdatetime,cronjob');
+
+// Path settings
+$path = SCRIPT_PATH . '/lib/classes/cron.d';
+
+//** Get commandline options
+$cmd_opt = getopt('', array('cronjob::'));
+
+if(isset($cmd_opt['cronjob']) && is_file($path.'/'.$cmd_opt['cronjob'])) {
+	// Cronjob that shell be run
+	$cronjob_file = $cmd_opt['cronjob'];
+} else {
+	die('Usage example: php cron_debug.php --cronjob=100-mailbox_stats.inc.php');
+}
+
+// Load and run the cronjob
+$name = substr($cronjob_file, 0, strpos($cronjob_file, '.'));
+if(preg_match('/^\d+\-(.*)$/', $name, $match)) $name = $match[1]; // strip numerical prefix from file name
+include $path . '/' . $cronjob_file;
+$class_name = 'cronjob_' . $name;
+$cronjob = new $class_name();
+
+$cronjob->onPrepare();
+$cronjob->onBeforeRun();
+$cronjob->onRunJob();
+$cronjob->onAfterRun();
+
+die("finished.\n");
+
+?>
diff --git a/server/lib/classes/cron.d/100-mailbox_stats.inc.php b/server/lib/classes/cron.d/100-mailbox_stats.inc.php
index 9778b2fc579f35bc5a9b79c8300fb961ab45b9f7..e347330c4c43f14bbb8922a551f70902ebdbf4bc 100644
--- a/server/lib/classes/cron.d/100-mailbox_stats.inc.php
+++ b/server/lib/classes/cron.d/100-mailbox_stats.inc.php
@@ -126,11 +126,10 @@ class cronjob_mailbox_stats extends cronjob {
 				return array('line' => $line, 'timestamp' => $timestamp, 'size' => $matches[6], 'from' => $matches[2], 'to' => $to, 'message-id' => $matches[5]);
 			}
 
-			function add_mailbox_traffic(&$traffic_array, $address, $traffic) {
-				global $mail_boxes, $mail_rewrites;
-
+			function add_mailbox_traffic(&$traffic_array, $address, $traffic,$mail_boxes, $mail_rewrites) {
+				//global $mail_boxes, $mail_rewrites;
+				//echo '##'.print_r($mail_boxes).'##';
 				$address = strtolower($address);
-
 				if(in_array($address, $mail_boxes) == true) {
 					if(!isset($traffic_array[$address])) $traffic_array[$address] = 0;
 					$traffic_array[$address] += $traffic;
@@ -193,12 +192,11 @@ class cronjob_mailbox_stats extends cronjob {
 							continue;
 						}
 					}
-
-					$this->add_mailbox_traffic($cur_line['from'], $cur_line['size']);
+					$this->add_mailbox_traffic($cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites);
 					//echo "1\n";
 					//print_r($this->mailbox_traffic);
 					foreach($cur_line['to'] as $to) {
-						$this->add_mailbox_traffic($to, $cur_line['size']);
+						$this->add_mailbox_traffic($to, $cur_line['size'],$mail_boxes, $mail_rewrites);
 						//echo "2\n";
 						//print_r($this->mailbox_traffic);
 					}
@@ -227,9 +225,9 @@ class cronjob_mailbox_stats extends cronjob {
 						}
 					}
 
-					add_mailbox_traffic($mailbox_traffic, $cur_line['from'], $cur_line['size']);
+					add_mailbox_traffic($mailbox_traffic, $cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites);
 					foreach($cur_line['to'] as $to) {
-						add_mailbox_traffic($mailbox_traffic, $to, $cur_line['size']);
+						add_mailbox_traffic($mailbox_traffic, $to, $cur_line['size'],$mail_boxes, $mail_rewrites);
 					}
 				}
 				fclose($fp);
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index f4b6ab7bca3e35bb5fc471132931fbb78045047c..1f3f0bea4e48473527e83b13df01831135263ab0 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -888,7 +888,7 @@ class apache2_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-		  if ( in_array($file_system , array('ext2','ext3','ext4'), true) ) {
+		  if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
             exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
             exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
           } elseif ($file_system == 'xfs') {
@@ -1189,7 +1189,7 @@ class apache2_plugin {
 			$sub_prefixes = array();
 
 			//* be sure to have good domain
-			if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
+			if(substr($domain,0,4) != 'www.' && ($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*")) {
 				$temp_domains[] = "www." . $domain;
 			}
 
@@ -1207,7 +1207,7 @@ class apache2_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+					if(isset($aliasdomain['subdomain']) && substr($aliasdomain['domain'],0,4) != 'www.' && ($aliasdomain['subdomain'] == "www" OR $aliasdomain['subdomain'] == "*")) {
 						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 				}
@@ -1234,6 +1234,7 @@ class apache2_plugin {
 			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
+				$app->log("Let's Encrypt SSL Cert domains: $lddomain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php
index 7ae4660abb416170c3120231d8549b9b04784004..9c7a835e2f4ecd052e1c81e5308f8c17545481a0 100644
--- a/server/plugins-available/backup_plugin.inc.php
+++ b/server/plugins-available/backup_plugin.inc.php
@@ -167,7 +167,7 @@ class backup_plugin {
 					if(file_exists($backup_dir.'/'.$backup['filename']) && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
 						unlink($backup_dir.'/'.$backup['filename']);
 						
-						$sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
+						$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
 						$app->db->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']);
 						if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
 						$app->log('unlink '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG);
diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index c7109a562e9d949af1cc408a0d7efc8bbab42254..1a13a57fcdddf3aa2fe20a9ec9c1165656d4452d 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -237,7 +237,7 @@ class cron_plugin {
 				
 				$command .= "\t{$this->parent_domain['system_user']}"; //* running as user
 				if($job['type'] == 'url') {
-					$command .= "\t{$cron_config['wget']} -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target;
+					$command .= "\t{$cron_config['wget']} --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target;
 				} else {
 					$web_root = '';
 					if($job['type'] == 'chrooted') {
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 9933aae6181db339e24f79dc2a4187f8a2f0e437..7f73d08be025fc56aa5c6ee769e2d75073af33ab 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -747,7 +747,7 @@ class nginx_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-          if ( in_array($file_system , array('ext2','ext3','ext4'), true) ) {
+          if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
             exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
             exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
           } elseif ($file_system == 'xfs') {
@@ -1263,7 +1263,7 @@ class nginx_plugin {
 			$sub_prefixes = array();
 
  			//* be sure to have good domain
- 			if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
+ 			if(substr($domain,0,4) != 'www.' && ($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*")) {
 				$temp_domains[] = "www." . $domain;
 			}
 
@@ -1281,7 +1281,7 @@ class nginx_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+					if(isset($aliasdomain['subdomain']) && substr($aliasdomain['domain'],0,4) != 'www.' && ($aliasdomain['subdomain'] == "www" OR $aliasdomain['subdomain'] == "*")) {
 						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 					
@@ -1313,6 +1313,7 @@ class nginx_plugin {
 			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
+				$app->log("Let's Encrypt SSL Cert domains: $lddomain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));