From 436ed820192d05299a639b45ade96f3916bb51f2 Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Mon, 1 Dec 2008 10:05:43 +0000
Subject: [PATCH] fixed some copyright notices

---
 install/dist/conf/centos52.conf.php           |  28 +
 install/dist/conf/debian40.conf.php           |  28 +
 install/dist/conf/fedora9.conf.php            |  28 +
 install/dist/conf/gentoo.conf.php             |  28 +
 install/dist/conf/opensuse110.conf.php        |  28 +
 install/dist/lib/centos52.lib.php             |   2 +-
 install/dist/lib/fedora.lib.php               |   2 +-
 install/dist/lib/fedora9.lib.php              |   2 +-
 install/dist/lib/opensuse.lib.php             |   2 +-
 install/dist/lib/opensuse110.lib.php          |   2 +-
 install/lib/install.lib.php                   |   1 -
 install/lib/mysql.lib.php                     | 865 +++++++++---------
 install/options.conf.php                      |  28 +
 install/sql/ispconfig3.sql                    |  28 +
 install/tpl/config.inc.php.master             |   3 +-
 interface/lib/app.inc.php                     |  14 +-
 interface/lib/classes/auth.inc.php            |   2 +-
 interface/lib/classes/cmstree.inc.php         |  11 +-
 interface/lib/classes/db_firebird.inc.php     | 640 ++++++-------
 interface/lib/classes/db_mysql.inc.php        |  14 +-
 interface/lib/classes/form.inc.php            |   3 +-
 interface/lib/classes/getconf.inc.php         |  11 +-
 interface/lib/classes/ini_parser.inc.php      |  10 +-
 interface/lib/classes/listform.inc.php        |   8 -
 .../lib/classes/listform_actions.inc.php      |   9 +-
 .../classes/listform_tpl_generator.inc.php    |   3 +-
 interface/lib/classes/plugin_base.inc.php     |  28 +
 .../lib/classes/plugin_dbhistory.inc.php      |  28 +
 interface/lib/classes/plugin_listview.inc.php |  28 +
 interface/lib/classes/remoting.inc.php        |  28 +
 interface/lib/classes/remoting_lib.inc.php    |   4 -
 interface/lib/classes/searchform.inc.php      |  10 +-
 .../lib/classes/searchform_actions.inc.php    |   9 +-
 .../classes/searchform_tpl_generator.inc.php  |   3 +-
 interface/lib/classes/tform.inc.php           |   5 +-
 interface/lib/classes/tform_actions.inc.php   |   9 +-
 .../lib/classes/tform_tpl_generator.inc.php   |   3 +-
 interface/lib/classes/tree.inc.php            |   2 +-
 interface/lib/classes/validate_client.inc.php |   3 +-
 interface/lib/classes/validate_dns.inc.php    |   9 +-
 interface/web/capp.php                        |   2 +-
 interface/web/clang.php                       |   2 +-
 interface/web/content.php                     |   2 +-
 interface/web/index.php                       |   2 +-
 interface/web/keepalive.php                   |   2 +-
 interface/web/nav.php                         |   2 +-
 remoting_client/example.php                   |  28 +
 server/conf/motd.master                       |   2 +-
 server/lib/app.inc.php                        |   3 +-
 server/lib/classes/db_mysql.inc.php           | 835 ++++++++---------
 server/lib/classes/file.inc.php               | 504 +++++-----
 server/lib/classes/getconf.inc.php            |   2 +-
 server/lib/classes/ini_parser.inc.php         |   2 +-
 server/lib/classes/mod_mail_base.inc.php      |   2 +-
 server/lib/classes/services.inc.php           |   4 +-
 server/lib/classes/system.inc.php             |   4 +-
 server/lib/classes/tpl.inc.php                |   1 -
 server/mods-available/client_module.inc.php   |   2 +-
 server/mods-available/database_module.inc.php |   2 +-
 .../monitor_core_module.inc.php               |   3 +-
 .../plugins-available/firewall_plugin.inc.php |   2 +-
 .../mysql_clientdb_plugin.inc.php             |   2 +-
 .../network_settings_plugin.inc.php           |   2 +-
 .../shelluser_jailkit_plugin.inc.php          |   2 +-
 .../software_update_plugin.inc.php            |   2 +-
 65 files changed, 1820 insertions(+), 1565 deletions(-)

diff --git a/install/dist/conf/centos52.conf.php b/install/dist/conf/centos52.conf.php
index 89f8f4f6b..711271de4 100644
--- a/install/dist/conf/centos52.conf.php
+++ b/install/dist/conf/centos52.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //***  Fedora 9 default settings
 
 //* Main
diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php
index e7dee4629..6b3bc6d3c 100644
--- a/install/dist/conf/debian40.conf.php
+++ b/install/dist/conf/debian40.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //***  Debian 4.0 default settings
 
 //* Main
diff --git a/install/dist/conf/fedora9.conf.php b/install/dist/conf/fedora9.conf.php
index 3f27d9796..11ea2a7e8 100644
--- a/install/dist/conf/fedora9.conf.php
+++ b/install/dist/conf/fedora9.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //***  Fedora 9 default settings
 
 //* Main
diff --git a/install/dist/conf/gentoo.conf.php b/install/dist/conf/gentoo.conf.php
index cc58b6d61..76c684894 100644
--- a/install/dist/conf/gentoo.conf.php
+++ b/install/dist/conf/gentoo.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //*** Gentoo default settings
 
 //* Main
diff --git a/install/dist/conf/opensuse110.conf.php b/install/dist/conf/opensuse110.conf.php
index 6191ad2a0..40d86b40e 100644
--- a/install/dist/conf/opensuse110.conf.php
+++ b/install/dist/conf/opensuse110.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //***  OpenSUSE 11.0 default settings
 
 //* Main
diff --git a/install/dist/lib/centos52.lib.php b/install/dist/lib/centos52.lib.php
index aed95f5e7..da77b423a 100644
--- a/install/dist/lib/centos52.lib.php
+++ b/install/dist/lib/centos52.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 1c00c4a7b..3e6c7e8dd 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/fedora9.lib.php b/install/dist/lib/fedora9.lib.php
index aed95f5e7..da77b423a 100644
--- a/install/dist/lib/fedora9.lib.php
+++ b/install/dist/lib/fedora9.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 1eba74e79..ccbc943bd 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/dist/lib/opensuse110.lib.php b/install/dist/lib/opensuse110.lib.php
index aed95f5e7..da77b423a 100644
--- a/install/dist/lib/opensuse110.lib.php
+++ b/install/dist/lib/opensuse110.lib.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index c78c0f03b..a0bc33fda 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -31,7 +31,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /*
 	This function returns a string that describes the installed
 	linux distribution. e.g. debian40 for Debian Linux 4.0
-
 */
 
 
diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php
index ec3e741c9..0dc8f4bbb 100644
--- a/install/lib/mysql.lib.php
+++ b/install/lib/mysql.lib.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,479 +28,479 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db
+{
+	var $dbHost = "";		  // hostname of the MySQL server
+	var $dbName = "";		  // logical database name on that server
+	var $dbUser = "";		  // database authorized user
+	var $dbPass = "";		  // user's password
+	var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
+	var $linkId = 0;		  // last result of mysql_connect()
+	var $queryId = 0;		  // last result of mysql_query()
+	var $record	= array();	  // last record fetched
+    var $autoCommit = 1;      // Autocommit Transactions
+	var $currentRow;		  // current row number
+	var $errorNumber = 0;	  // last error number
+	var $errorMessage = "";	  // last error message
+	var $errorLocation = "";  // last error location
+	var $show_error_messages = false;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		  // hostname of the MySQL server
-		var $dbName = "";		  // logical database name on that server
-		var $dbUser = "";		  // database authorized user
-		var $dbPass = "";		  // user's password
-		var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
-		var $linkId = 0;		  // last result of mysql_connect()
-		var $queryId = 0;		  // last result of mysql_query()
-		var $record	= array();	  // last record fetched
-        var $autoCommit = 1;      // Autocommit Transactions
-		var $currentRow;		  // current row number
-		var $errorNumber = 0;	  // last error number
-		var $errorMessage = "";	  // last error message
-		var $errorLocation = "";  // last error location
-		var $show_error_messages = false;
+		
+		global $conf;
+		$this->dbHost = $conf["mysql"]["host"];
+		//$this->dbName = $conf["mysql"]["database"];
+		$this->dbUser = $conf["mysql"]["admin_user"];
+		$this->dbPass = $conf["mysql"]["admin_password"];
+		$this->dbCharset = $conf["mysql"]["charset"];
+		//$this->connect();
+	}
 
-		// constructor
-		function db()
+	// error handler
+	function updateError($location)
+	{
+		$this->errorNumber = mysql_errno();
+		$this->errorMessage = mysql_error();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
 		{
-			
-			global $conf;
-			$this->dbHost = $conf["mysql"]["host"];
-			//$this->dbName = $conf["mysql"]["database"];
-			$this->dbUser = $conf["mysql"]["admin_user"];
-			$this->dbPass = $conf["mysql"]["admin_password"];
-			$this->dbCharset = $conf["mysql"]["charset"];
-			//$this->connect();
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
 		}
+	}
 
-		// error handler
-		function updateError($location)
+	function connect()
+	{
+		if($this->linkId == 0)
 		{
-			$this->errorNumber = mysql_errno();
-			$this->errorMessage = mysql_error();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
-			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
-			}
-		}
+			$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
 
-		function connect()
-		{
-			if($this->linkId == 0)
+			if(!$this->linkId)
 			{
-				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
-
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />mysql_connect');
-					return false;
-				}
-    			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
+				$this->updateError('DB::connect()<br />mysql_connect');
+				return false;
 			}
-			return true;
+			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
 		}
+		return true;
+	}
 
-		function query($queryString)
+	function query($queryString)
+	{
+		if(!$this->connect())
 		{
-			if(!$this->connect())
-			{
-				return false;
-			}
-			if($this->dbName != '') {
-				if(!mysql_select_db($this->dbName, $this->linkId))
-				{
-					$this->updateError('DB::connect()<br />mysql_select_db');
-					return false;
-				}
-			}
-			$this->queryId = @mysql_query($queryString, $this->linkId);
-			$this->updateError('DB::query('.$queryString.')<br />mysql_query');
-			if(!$this->queryId)
+			return false;
+		}
+		if($this->dbName != '') {
+			if(!mysql_select_db($this->dbName, $this->linkId))
 			{
+				$this->updateError('DB::connect()<br />mysql_select_db');
 				return false;
 			}
-			$this->currentRow = 0;
-			return $this->queryId;
 		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
+		$this->queryId = @mysql_query($queryString, $this->linkId);
+		$this->updateError('DB::query('.$queryString.')<br />mysql_query');
+		if(!$this->queryId)
 		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			return $ret;
+			return false;
 		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
 
-		// returns one record in an array
-		function queryOneRecord($queryString)
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
 		{
-			if(!$this->query($queryString) || $this->numRows() == 0)
-			{
-				return false;
-			}
-			return $this->nextRecord();
+			return false;
 		}
-
-		// returns the next record in an array
-		function nextRecord()
+		$ret = array();
+		while($line = $this->nextRecord())
 		{
-            $this->record = mysql_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
+			$ret[] = $line;
 		}
+		return $ret;
+	}
 
-		// returns number of rows returned by the last select query
-		function numRows()
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString) || $this->numRows() == 0)
 		{
-			return mysql_num_rows($this->queryId);
+			return false;
 		}
-		
-		function affectedRows()
+		return $this->nextRecord();
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = mysql_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+		if(!$this->record || !is_array($this->record))
 		{
-			return mysql_affected_rows($this->linkId);
+			return false;
 		}
-		
-		// returns mySQL insert id
-		function insertID()
-		{
-			return mysql_insert_id($this->linkId);
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return mysql_num_rows($this->queryId);
+	}
+	
+	function affectedRows()
+	{
+		return mysql_affected_rows($this->linkId);
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return mysql_insert_id($this->linkId);
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        return mysql_real_escape_string($formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return stripslashes($formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
+			}
 		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->check($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->check($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+       }
+   }
+   
+   function closeConn() {
+   
+   }
+   
+   function freeResult() {
+   
+   
+   }
+   
+   function delete() {
+   
+   }
+   
+   function Transaction($action) {
+   //action = begin, commit oder rollback
+   
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") {
+			if($col["defaultValue"] == "NULL" or $col["defaultValue"] == "NOT NULL") {
+				$sql .= "DEFAULT ".$col["defaultValue"]." ";
+			} else {
+				$sql .= "DEFAULT '".$col["defaultValue"]."' ";
+			}
+			
+		} elseif($col["defaultValue"] != false) {
+			$sql .= "DEFAULT '' ";
+		}
+		if($col["defaultValue"] != "NULL" && $col["defaultValue"] != "NOT NULL") {
+        	if($col["notNull"] == true) {
+            	$sql .= "NOT NULL ";
+        	} else {
+            	$sql .= "NULL ";
+        	}
+		}
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   $index = "";
+   $sql = "ALTER TABLE $table_name ";
+   foreach($columns as $col){
+        if($col["action"] == 'add') {
+            $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'alter') {
+            $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'drop') {
+            $sql .= "DROP ".$col["name"]." ";
         }
-		
-		// Check der variablen
-        function quote($formfield)
-        {
-            return mysql_real_escape_string($formfield);
+        if($col["action"] != 'drop') {  
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
         }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return stripslashes($formfield);
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
         }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
-			}
-		return $out;
-		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->check($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   
+   //die($sql);
+   $this->query($sql);
+   return true;
+   }
+   
+   function dropTable($table_name) {
+   $this->check($table_name);
+   $sql = "DROP TABLE '". $table_name."'";
+   return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zur�ck
+   function getTables($database_name = '') {
+   	
+		if($database_name == ''){
+            $database_name = $this->dbName;
+        }
+        $result = mysql_query("SHOW TABLES FROM `$database_name`");
+        $tb_names = array();
+        for ($i = 0; $i < mysql_num_rows($result); $i++) {
+            $tb_names[$i] = mysql_tablename($result, $i);
+        }
+        return $tb_names;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zur�ck
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+   
+   global $go_api,$go_info;
+   // Tabellenfelder einlesen
+    
+    if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
+    foreach($rows as $row) {
+        $name = $row[0];
+        $default = $row[4];
+        $key = $row[3];
+        $extra = $row[5];
+        $isnull = $row[2];
+        $type = $row[1];
+    
         
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->check($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       
-       }
-       
-       function freeResult() {
-       
-       
-       }
-       
-       function delete() {
-       
-       }
-       
-       function Transaction($action) {
-       //action = begin, commit oder rollback
-       
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") {
-				if($col["defaultValue"] == "NULL" or $col["defaultValue"] == "NOT NULL") {
-					$sql .= "DEFAULT ".$col["defaultValue"]." ";
-				} else {
-					$sql .= "DEFAULT '".$col["defaultValue"]."' ";
-				}
-				
-			} elseif($col["defaultValue"] != false) {
-				$sql .= "DEFAULT '' ";
-			}
-			if($col["defaultValue"] != "NULL" && $col["defaultValue"] != "NOT NULL") {
-            	if($col["notNull"] == true) {
-                	$sql .= "NOT NULL ";
-            	} else {
-                	$sql .= "NULL ";
-            	}
-			}
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       $index = "";
-       $sql = "ALTER TABLE $table_name ";
-       foreach($columns as $col){
-            if($col["action"] == 'add') {
-                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'alter') {
-                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'drop') {
-                $sql .= "DROP ".$col["name"]." ";
-            }
-            if($col["action"] != 'drop') {  
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-            }
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       
-       //die($sql);
-       $this->query($sql);
-       return true;
-       }
-       
-       function dropTable($table_name) {
-       $this->check($table_name);
-       $sql = "DROP TABLE '". $table_name."'";
-       return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zur�ck
-       function getTables($database_name = '') {
-	   	
-			if($database_name == ''){
-                $database_name = $this->dbName;
-            }
-            $result = mysql_query("SHOW TABLES FROM `$database_name`");
-            $tb_names = array();
-            for ($i = 0; $i < mysql_num_rows($result); $i++) {
-                $tb_names[$i] = mysql_tablename($result, $i);
-            }
-            return $tb_names;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zur�ck
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-       
-       global $go_api,$go_info;
-       // Tabellenfelder einlesen
+        $column = array();
+    
+        $column["name"] = $name;
+        //$column["type"] = $type;
+        $column["defaultValue"] = $default;
+        if(stristr($key,"PRI")) $column["option"] = "primary";
+        if(stristr($isnull,"YES")) {
+            $column["notNull"] = false;
+        } else {
+           $column["notNull"] = true; 
+        }
+        if($extra == 'auto_increment') $column["autoInc"] = true;
         
-        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
-        foreach($rows as $row) {
-            $name = $row[0];
-            $default = $row[4];
-            $key = $row[3];
-            $extra = $row[5];
-            $isnull = $row[2];
-            $type = $row[1];
         
-            
-            $column = array();
+        // Type in Metatype umsetzen
         
-            $column["name"] = $name;
-            //$column["type"] = $type;
-            $column["defaultValue"] = $default;
-            if(stristr($key,"PRI")) $column["option"] = "primary";
-            if(stristr($isnull,"YES")) {
-                $column["notNull"] = false;
-            } else {
-               $column["notNull"] = true; 
-            }
-            if($extra == 'auto_increment') $column["autoInc"] = true;
-            
-            
-            // Type in Metatype umsetzen
-            
-            if(stristr($type,"int(")) $metaType = 'int32';
-            if(stristr($type,"bigint")) $metaType = 'int64';
-            if(stristr($type,"char")) {
-                $metaType = 'char';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"varchar")) {
-                $metaType = 'varchar';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"text")) $metaType = 'text';
-            if(stristr($type,"double")) $metaType = 'double';
-            if(stristr($type,"blob")) $metaType = 'blob';
-            
-            
-            $column["type"] = $metaType;
-            
-        $columns[] = $column;
+        if(stristr($type,"int(")) $metaType = 'int32';
+        if(stristr($type,"bigint")) $metaType = 'int64';
+        if(stristr($type,"char")) {
+            $metaType = 'char';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
         }
-            return $columns;
-        } else {
-            return false;
+        if(stristr($type,"varchar")) {
+            $metaType = 'varchar';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
         }
+        if(stristr($type,"text")) $metaType = 'text';
+        if(stristr($type,"double")) $metaType = 'double';
+        if(stristr($type,"blob")) $metaType = 'blob';
         
         
-        //$this->createTable('tester',$columns);
+        $column["type"] = $metaType;
         
-        /*
-        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
-        $fields = mysql_num_fields ($result);
-        $i = 0;
-        $table = mysql_field_table ($result, $i);
-        while ($i < $fields) {
-            $name  = mysql_field_name  ($result, $i);
-            $type  = mysql_field_type  ($result, $i);
-            $len   = mysql_field_len   ($result, $i);
-            $flags = mysql_field_flags ($result, $i);
-            print_r($flags);
-            
-            $columns = array(name => $name,
-                        type =>     "",
-                        defaultValue =>  "",
-                        isnull =>   1,
-                        option =>   "");
-            $returnvar[] = $columns;
-            
-            $i++;
-        }
-        */
+    $columns[] = $column;
+    }
+        return $columns;
+    } else {
+        return false;
+    }
+    
+    
+    //$this->createTable('tester',$columns);
+    
+    /*
+    $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
+    $fields = mysql_num_fields ($result);
+    $i = 0;
+    $table = mysql_field_table ($result, $i);
+    while ($i < $fields) {
+        $name  = mysql_field_name  ($result, $i);
+        $type  = mysql_field_type  ($result, $i);
+        $len   = mysql_field_len   ($result, $i);
+        $flags = mysql_field_flags ($result, $i);
+        print_r($flags);
         
+        $columns = array(name => $name,
+                    type =>     "",
+                    defaultValue =>  "",
+                    isnull =>   1,
+                    option =>   "");
+        $returnvar[] = $columns;
         
-       
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
-		
-	}
+        $i++;
+    }
+    */
+    
+    
+   
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) die("Datenbank Fehler: F�r diesen Datentyp ist eine L�ngenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
 
 ?>
diff --git a/install/options.conf.php b/install/options.conf.php
index bfff3ec00..6c5cd19b5 100644
--- a/install/options.conf.php
+++ b/install/options.conf.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //** TODO: These options need to be in an install script somehow
 
 //** Installation Options
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 01ef1ec1a..bb8b52d50 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1,4 +1,32 @@
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 -- ISPConfig 3
 -- DB-Version: 3.0.0.8
 
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index c8796b81f..bdc74e26e 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2008, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php
index 65fcc45c5..9ff30fed8 100644
--- a/interface/lib/app.inc.php
+++ b/interface/lib/app.inc.php
@@ -1,15 +1,7 @@
 <?php
-/**
- * Application Class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -36,6 +28,10 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+/*
+    Application Class
+*/
+
 ob_start('ob_gzhandler');
 
 class app {
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 3bd5f5cb7..437862af3 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/cmstree.inc.php b/interface/lib/classes/cmstree.inc.php
index 1a3cb8473..2a590008e 100644
--- a/interface/lib/classes/cmstree.inc.php
+++ b/interface/lib/classes/cmstree.inc.php
@@ -1,14 +1,7 @@
 <?
-/**
- * cmstree Class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/db_firebird.inc.php b/interface/lib/classes/db_firebird.inc.php
index e02a87849..d358b0038 100644
--- a/interface/lib/classes/db_firebird.inc.php
+++ b/interface/lib/classes/db_firebird.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,354 +28,353 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db {
+	var $dbHost = "";		// hostname of the MySQL server
+	var $dbName = "";		// logical database name on that server
+	var $dbUser = "";		// database authorized user
+	var $dbPass = "";		// user's password
+	var $linkId = 0;		// last result of mysql_connect()
+	var $queryId = 0;		// last result of mysql_query()
+	var $record	= array();	// last record fetched
+    var $autoCommit = 1;    // Autocommit Transactions
+	var $currentRow;		// current row number
+	var $errorNumber = 0;	// last error number
+	var $errorMessage = "";	// last error message
+	var $errorLocation = "";// last error location
+	var $show_error_messages = false;
+	var $transID;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		// hostname of the MySQL server
-		var $dbName = "";		// logical database name on that server
-		var $dbUser = "";		// database authorized user
-		var $dbPass = "";		// user's password
-		var $linkId = 0;		// last result of mysql_connect()
-		var $queryId = 0;		// last result of mysql_query()
-		var $record	= array();	// last record fetched
-        var $autoCommit = 1;    // Autocommit Transactions
-		var $currentRow;		// current row number
-		var $errorNumber = 0;	// last error number
-		var $errorMessage = "";	// last error message
-		var $errorLocation = "";// last error location
-		var $show_error_messages = false;
-		var $transID;
+		
+		global $conf;
+		$this->dbHost = $conf["db_host"];
+		$this->dbName = $conf["db_database"];
+		$this->dbUser = $conf["db_user"];
+		$this->dbPass = $conf["db_password"];
+		$this->connect();
+	}
 
-		// constructor
-		function db()
+	// error handler
+	function updateError($location)
+	{
+		//$this->errorNumber = mysql_errno();
+		$this->errorMessage = ibase_errmsg();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
 		{
-			
-			global $conf;
-			$this->dbHost = $conf["db_host"];
-			$this->dbName = $conf["db_database"];
-			$this->dbUser = $conf["db_user"];
-			$this->dbPass = $conf["db_password"];
-			$this->connect();
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
 		}
+	}
 
-		// error handler
-		function updateError($location)
+	function connect()
+	{
+		if($this->linkId == 0)
 		{
-			//$this->errorNumber = mysql_errno();
-			$this->errorMessage = ibase_errmsg();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
+			$this->linkId = ibase_connect( $this->dbHost.":".$this->dbName , $this->dbUser, $this->dbPass,'ISO8859_1',0,3 );
+			if(!$this->linkId)
 			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
+				$this->updateError('DB::connect()<br />ibase_pconnect');
+				return false;
 			}
 		}
+		return true;
+	}
 
-		function connect()
-		{
-			if($this->linkId == 0)
-			{
-				$this->linkId = ibase_connect( $this->dbHost.":".$this->dbName , $this->dbUser, $this->dbPass,'ISO8859_1',0,3 );
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />ibase_pconnect');
-					return false;
-				}
-			}
-			return true;
+	function query($queryString)
+	{
+		if(!$this->connect()) {
+			return false;
 		}
-
-		function query($queryString)
-		{
-			if(!$this->connect()) {
-				return false;
-			}
-			
-			if($this->autoCommit == 1) {
-				//$transID = ibase_trans();
-				$this->queryId = @ibase_query($this->linkId,$queryString);
-				//ibase_commit();
-			} else {
-				$this->queryId = @ibase_query($this->linkId,$queryString);
-			}
-			
-			
-			$this->updateError('DB::query('.$queryString.')<br />ibase_query');
-			if(!$this->queryId) {
-				return false;
-			}
-			$this->currentRow = 0;
-			return $this->queryId;
+		
+		if($this->autoCommit == 1) {
+			//$transID = ibase_trans();
+			$this->queryId = @ibase_query($this->linkId,$queryString);
+			//ibase_commit();
+		} else {
+			$this->queryId = @ibase_query($this->linkId,$queryString);
 		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
-		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			//$this->freeResult();
-			ibase_free_result($this->queryId);
-			return $ret;
+		
+		
+		$this->updateError('DB::query('.$queryString.')<br />ibase_query');
+		if(!$this->queryId) {
+			return false;
 		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
 
-		// returns one record in an array
-		function queryOneRecord($queryString)
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
 		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$result = $this->nextRecord();
-			ibase_free_result($this->queryId);
-			return $result;
+			return false;
 		}
-
-		// returns the next record in an array
-		function nextRecord()
+		$ret = array();
+		while($line = $this->nextRecord())
 		{
-            $this->record = ibase_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />ibase_fetch_assoc');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
+			$ret[] = $line;
 		}
+		//$this->freeResult();
+		ibase_free_result($this->queryId);
+		return $ret;
+	}
 
-		// returns number of rows returned by the last select query
-		function numRows()
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString))
 		{
 			return false;
 		}
-		
-		// returns mySQL insert id
-		function insertID()
+		$result = $this->nextRecord();
+		ibase_free_result($this->queryId);
+		return $result;
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = ibase_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />ibase_fetch_assoc');
+		if(!$this->record || !is_array($this->record))
 		{
 			return false;
 		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
-        }
-		
-		// Check der variablen
-        function quote($formfield)
-        {
-            return str_replace("'","''",$formfield);
-        }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return str_replace("''","'",$formfield);
-        }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return false;
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return false;
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        return str_replace("'","''",$formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return str_replace("''","'",$formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
 			}
-		return $out;
 		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->quote($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
-        
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->quote($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       	ibase_close($this->linkId);
-       }
-       
-       function freeResult() {
-       	//ibase_free_result();
-       }
-       
-       function delete() {
-       
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->quote($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->quote($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
        }
-       
-       function trans($action,$transID = null) {
-       //action = begin, commit oder rollback
-	   
-	   		if($action == 'begin') {
-	   			$this->transID = ibase_trans($this->linkId);
-				return $this->transID;
-	   		}
-			
-			if($action == 'commit' and !empty($this->transID)) {
-				ibase_commit($this->linkId,$this->transID);
-			}
+   }
+   
+   function closeConn() {
+   	ibase_close($this->linkId);
+   }
+   
+   function freeResult() {
+   	//ibase_free_result();
+   }
+   
+   function delete() {
+   
+   }
+   
+   function trans($action,$transID = null) {
+   //action = begin, commit oder rollback
+   
+   		if($action == 'begin') {
+   			$this->transID = ibase_trans($this->linkId);
+			return $this->transID;
+   		}
 		
-			if($action == 'rollback') {
-				ibase_rollback($this->linkId,$this->transID);
-			}
-			
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       		return false;
-       }
-       
-       function dropTable($table_name) {
-       		$this->check($table_name);
-       		$sql = "DROP TABLE '". $table_name."'";
-      		return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zurück
-       function getTables($database_name) {
-            return false;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zurück
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-            return false;
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) $go_api->errorMessage("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
+		if($action == 'commit' and !empty($this->transID)) {
+			ibase_commit($this->linkId,$this->transID);
+		}
+	
+		if($action == 'rollback') {
+			ibase_rollback($this->linkId,$this->transID);
+		}
 		
-	}
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   		return false;
+   }
+   
+   function dropTable($table_name) {
+   		$this->check($table_name);
+   		$sql = "DROP TABLE '". $table_name."'";
+  		return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zurück
+   function getTables($database_name) {
+        return false;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zurück
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+        return false;
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) $go_api->errorMessage("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
 
 ?>
\ No newline at end of file
diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index 6caf0c937..ed35b419b 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -1,14 +1,7 @@
 <?php
-/**
- * mySQL Database class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.2
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -35,8 +28,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-class db
-{
+class db {
 	private $dbHost = '';		   // hostname of the MySQL server
 	private $dbName = '';		   // logical database name on that server
 	private $dbUser = '';		   // database authorized user
diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php
index e3c1bff1a..f0e8de645 100644
--- a/interface/lib/classes/form.inc.php
+++ b/interface/lib/classes/form.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php
index e2dc32777..097342c53 100644
--- a/interface/lib/classes/getconf.inc.php
+++ b/interface/lib/classes/getconf.inc.php
@@ -1,14 +1,7 @@
 <?php
-/**
- * getconf class
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
+
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/ini_parser.inc.php b/interface/lib/classes/ini_parser.inc.php
index 67e6542bf..76bbc131b 100644
--- a/interface/lib/classes/ini_parser.inc.php
+++ b/interface/lib/classes/ini_parser.inc.php
@@ -1,15 +1,7 @@
 <?php
-/**
- * ini parser 
- * 
- * @author Till Brehm
- * @copyright  2005, Till Brehm, projektfarm Gmbh
- * @version 0.1
- * @package ISPConfig
- */
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index 31086e85f..12d3e1803 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -28,14 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Listenbehandlung
-*
-* @package listform
-* @author Till Brehm
-* @version 1.1
-*/
-
 class listform {
 
     private $debug = 0;
diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php
index e90bdc81b..e57051415 100644
--- a/interface/lib/classes/listform_actions.inc.php
+++ b/interface/lib/classes/listform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,13 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Action framework for the listform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
-*/
-
 class listform_actions {
 	
 	private $id;
diff --git a/interface/lib/classes/listform_tpl_generator.inc.php b/interface/lib/classes/listform_tpl_generator.inc.php
index 36d026ed6..f1ccddc9e 100644
--- a/interface/lib/classes/listform_tpl_generator.inc.php
+++ b/interface/lib/classes/listform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class listform_tpl_generator {
 	
 	function buildHTML($listDef,$module = '') {
diff --git a/interface/lib/classes/plugin_base.inc.php b/interface/lib/classes/plugin_base.inc.php
index 1ac14829b..cde853fc8 100644
--- a/interface/lib/classes/plugin_base.inc.php
+++ b/interface/lib/classes/plugin_base.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 class plugin_base {
 	
 	var $plugin_name;
diff --git a/interface/lib/classes/plugin_dbhistory.inc.php b/interface/lib/classes/plugin_dbhistory.inc.php
index 7c2c4e3bd..876dcaf04 100644
--- a/interface/lib/classes/plugin_dbhistory.inc.php
+++ b/interface/lib/classes/plugin_dbhistory.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 class plugin_dbhistory extends plugin_base {
 
         var $module;
diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php
index 771cd5bf0..ee254da06 100644
--- a/interface/lib/classes/plugin_listview.inc.php
+++ b/interface/lib/classes/plugin_listview.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 class plugin_listview extends plugin_base {
 
         var $module;
diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index c9ec53b78..f3263dd82 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 class remoting {
 	
 	//* remote session timeout in seconds
diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index eca27ad0f..7d0d7f73f 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -58,10 +58,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *        Hinweis:
 *        Das ID-Feld ist nicht bei den Table Values einzufügen.
-*
-* @package form
-* @author Till Brehm
-* @version 1.1
 */
 
 class remoting_lib {
diff --git a/interface/lib/classes/searchform.inc.php b/interface/lib/classes/searchform.inc.php
index 25a941293..9c0c0dd35 100644
--- a/interface/lib/classes/searchform.inc.php
+++ b/interface/lib/classes/searchform.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,14 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Listenbehandlung
-*
-* @package searchform
-* @author Till Brehm
-* @version 1.1
-*/
-
 class searchform {
 
     public $debug = 0;
diff --git a/interface/lib/classes/searchform_actions.inc.php b/interface/lib/classes/searchform_actions.inc.php
index e128ce8e4..edba2b9f6 100644
--- a/interface/lib/classes/searchform_actions.inc.php
+++ b/interface/lib/classes/searchform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,13 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Action framework for the searchform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
-*/
-
 class searchform_actions {
 	
 	var $id;
diff --git a/interface/lib/classes/searchform_tpl_generator.inc.php b/interface/lib/classes/searchform_tpl_generator.inc.php
index d72a07758..77e1aa8e2 100644
--- a/interface/lib/classes/searchform_tpl_generator.inc.php
+++ b/interface/lib/classes/searchform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class searchform_tpl_generator {
 	
 	function buildHTML($listDef,$module = '') {
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index dbb17fa6e..c9baa5cb1 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -56,9 +56,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *        Hint: The auto increment (ID) filed of the table has not be be definied eoarately.
 *
-* @package form
-* @author Till Brehm
-* @version 1.1
 */
 
 class tform {
diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php
index 812c79296..214b6eb1c 100644
--- a/interface/lib/classes/tform_actions.inc.php
+++ b/interface/lib/classes/tform_actions.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,13 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* Action framework for the tform library.
-*
-* @author Till Brehm <t.brehm@scrigo.org>
-* @copyright Copyright &copy; 2005, Till Brehm
-*/
-
 class tform_actions {
 
         var $id;
diff --git a/interface/lib/classes/tform_tpl_generator.inc.php b/interface/lib/classes/tform_tpl_generator.inc.php
index 1f10e8efe..5a9af704d 100644
--- a/interface/lib/classes/tform_tpl_generator.inc.php
+++ b/interface/lib/classes/tform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class tform_tpl_generator {
 	
 	function buildHTML($formDef,$tab) {
diff --git a/interface/lib/classes/tree.inc.php b/interface/lib/classes/tree.inc.php
index af030ae4f..170d12688 100644
--- a/interface/lib/classes/tree.inc.php
+++ b/interface/lib/classes/tree.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index a7b7ae8b0..9c81aa3ea 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2007, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class validate_client {
 	
 	/*
diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php
index 938a8fa51..95f1d42f9 100644
--- a/interface/lib/classes/validate_dns.inc.php
+++ b/interface/lib/classes/validate_dns.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, Falko Timme, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,11 +28,8 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-/**
-* DNS validation
-*
-* @author Falko Timme <ft@falkotimme.com>
-* @copyright Copyright &copy; 2005, Falko Timme
+/*
+    DNS validation
 */
 
 class validate_dns {
diff --git a/interface/web/capp.php b/interface/web/capp.php
index 041e79d26..636088122 100644
--- a/interface/web/capp.php
+++ b/interface/web/capp.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/clang.php b/interface/web/clang.php
index 35e0580ce..518471291 100644
--- a/interface/web/clang.php
+++ b/interface/web/clang.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/content.php b/interface/web/content.php
index 9e6382d13..cd19cd429 100644
--- a/interface/web/content.php
+++ b/interface/web/content.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/index.php b/interface/web/index.php
index 419f755f9..8ec46be5e 100644
--- a/interface/web/index.php
+++ b/interface/web/index.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/keepalive.php b/interface/web/keepalive.php
index c16605546..fd9c1d721 100644
--- a/interface/web/keepalive.php
+++ b/interface/web/keepalive.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/nav.php b/interface/web/nav.php
index 8b22948cc..c3f550a36 100644
--- a/interface/web/nav.php
+++ b/interface/web/nav.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/remoting_client/example.php b/remoting_client/example.php
index 89590348c..ddef0ee14 100644
--- a/remoting_client/example.php
+++ b/remoting_client/example.php
@@ -1,5 +1,33 @@
 <?php
 
+/*
+Copyright (c) 2007, 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.
+*/
+
 //* Examples for the remoting framework
 
 //* Login credentials
diff --git a/server/conf/motd.master b/server/conf/motd.master
index 7467ff3ad..efc2ac3e8 100644
--- a/server/conf/motd.master
+++ b/server/conf/motd.master
@@ -1,4 +1,4 @@
-Welcome To Site <tmpl_var name='domain'>
+Welcome to <tmpl_var name='domain'>
 
 
 
diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php
index d045486b6..e0e9e7443 100644
--- a/server/lib/app.inc.php
+++ b/server/lib/app.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index 0270821b9..9bd6c80b1 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,462 +28,462 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-	class db
+class db
+{
+	var $dbHost = "";		  // hostname of the MySQL server
+	var $dbName = "";		  // logical database name on that server
+	var $dbUser = "";		  // database authorized user
+	var $dbPass = "";		  // user's password
+	var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
+	var $linkId = 0;		  // last result of mysql_connect()
+	var $queryId = 0;		  // last result of mysql_query()
+	var $record	= array();	  // last record fetched
+    var $autoCommit = 1;      // Autocommit Transactions
+	var $currentRow;		  // current row number
+	var $errorNumber = 0;	  // last error number
+	var $errorMessage = "";	  // last error message
+	var $errorLocation = "";  // last error location
+	var $show_error_messages = false;
+
+	// constructor
+	function db()
 	{
-		var $dbHost = "";		  // hostname of the MySQL server
-		var $dbName = "";		  // logical database name on that server
-		var $dbUser = "";		  // database authorized user
-		var $dbPass = "";		  // user's password
-		var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
-		var $linkId = 0;		  // last result of mysql_connect()
-		var $queryId = 0;		  // last result of mysql_query()
-		var $record	= array();	  // last record fetched
-        var $autoCommit = 1;      // Autocommit Transactions
-		var $currentRow;		  // current row number
-		var $errorNumber = 0;	  // last error number
-		var $errorMessage = "";	  // last error message
-		var $errorLocation = "";  // last error location
-		var $show_error_messages = false;
+		
+		global $conf;
+		$this->dbHost = $conf["db_host"];
+		$this->dbName = $conf["db_database"];
+		$this->dbUser = $conf["db_user"];
+		$this->dbPass = $conf["db_password"];
+		$this->dbCharset = $conf["db_charset"];
+		//$this->connect();
+	}
 
-		// constructor
-		function db()
+	// error handler
+	function updateError($location)
+	{
+		$this->errorNumber = mysql_errno();
+		$this->errorMessage = mysql_error();
+		$this->errorLocation = $location;
+		if($this->errorNumber && $this->show_error_messages)
 		{
-			
-			global $conf;
-			$this->dbHost = $conf["db_host"];
-			$this->dbName = $conf["db_database"];
-			$this->dbUser = $conf["db_user"];
-			$this->dbPass = $conf["db_password"];
-			$this->dbCharset = $conf["db_charset"];
-			//$this->connect();
+			echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+			flush();
 		}
+	}
 
-		// error handler
-		function updateError($location)
+	function connect()
+	{
+		if($this->linkId == 0)
 		{
-			$this->errorNumber = mysql_errno();
-			$this->errorMessage = mysql_error();
-			$this->errorLocation = $location;
-			if($this->errorNumber && $this->show_error_messages)
+			$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
+			if(!$this->linkId)
 			{
-				echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
-				flush();
+				$this->updateError('DB::connect()<br />mysql_connect');
+				return false;
 			}
+			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
 		}
+		return true;
+	}
 
-		function connect()
+	function query($queryString)
+	{
+		if(!$this->connect())
 		{
-			if($this->linkId == 0)
-			{
-				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
-				if(!$this->linkId)
-				{
-					$this->updateError('DB::connect()<br />mysql_connect');
-					return false;
-				}
-    			$this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
-			}
-			return true;
+			return false;
 		}
-
-		function query($queryString)
+		if(!mysql_select_db($this->dbName, $this->linkId))
 		{
-			if(!$this->connect())
-			{
-				return false;
-			}
-			if(!mysql_select_db($this->dbName, $this->linkId))
-			{
-				$this->updateError('DB::connect()<br />mysql_select_db');
-				return false;
-			}
-			$this->queryId = @mysql_query($queryString, $this->linkId);
-			$this->updateError('DB::query('.$queryString.')<br />mysql_query');
-			if(!$this->queryId)
-			{
-				return false;
-			}
-			$this->currentRow = 0;
-			return $this->queryId;
+			$this->updateError('DB::connect()<br />mysql_select_db');
+			return false;
 		}
-
-		// returns all records in an array
-		function queryAllRecords($queryString)
+		$this->queryId = @mysql_query($queryString, $this->linkId);
+		$this->updateError('DB::query('.$queryString.')<br />mysql_query');
+		if(!$this->queryId)
 		{
-			if(!$this->query($queryString))
-			{
-				return false;
-			}
-			$ret = array();
-			while($line = $this->nextRecord())
-			{
-				$ret[] = $line;
-			}
-			return $ret;
+			return false;
 		}
+		$this->currentRow = 0;
+		return $this->queryId;
+	}
 
-		// returns one record in an array
-		function queryOneRecord($queryString)
+	// returns all records in an array
+	function queryAllRecords($queryString)
+	{
+		if(!$this->query($queryString))
 		{
-			if(!$this->query($queryString) || $this->numRows() == 0)
-			{
-				return false;
-			}
-			return $this->nextRecord();
+			return false;
 		}
-
-		// returns the next record in an array
-		function nextRecord()
+		$ret = array();
+		while($line = $this->nextRecord())
 		{
-            $this->record = mysql_fetch_assoc($this->queryId);
-			$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
-			if(!$this->record || !is_array($this->record))
-			{
-				return false;
-			}
-			$this->currentRow++;
-			return $this->record;
+			$ret[] = $line;
 		}
+		return $ret;
+	}
 
-		// returns number of rows returned by the last select query
-		function numRows()
+	// returns one record in an array
+	function queryOneRecord($queryString)
+	{
+		if(!$this->query($queryString) || $this->numRows() == 0)
 		{
-			return mysql_num_rows($this->queryId);
+			return false;
 		}
-		
-		// returns mySQL insert id
-		function insertID()
+		return $this->nextRecord();
+	}
+
+	// returns the next record in an array
+	function nextRecord()
+	{
+        $this->record = mysql_fetch_assoc($this->queryId);
+		$this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+		if(!$this->record || !is_array($this->record))
 		{
-			return mysql_insert_id($this->linkId);
+			return false;
+		}
+		$this->currentRow++;
+		return $this->record;
+	}
+
+	// returns number of rows returned by the last select query
+	function numRows()
+	{
+		return mysql_num_rows($this->queryId);
+	}
+	
+	// returns mySQL insert id
+	function insertID()
+	{
+		return mysql_insert_id($this->linkId);
+	}
+    
+    // Check der variablen
+	// deprecated, now use quote
+    function check($formfield)
+    {
+        return $this->quote($formfield);
+    }
+	
+	// Check der variablen
+    function quote($formfield)
+    {
+        if(!$this->connect()){
+			$this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string');
+			return addslashes($formfield);
 		}
-        
-        // Check der variablen
-		// deprecated, now use quote
-        function check($formfield)
-        {
-            return $this->quote($formfield);
-        }
 		
-		// Check der variablen
-        function quote($formfield)
-        {
-            if(!$this->connect()){
-				$this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string');
-				return addslashes($formfield);
+		return mysql_real_escape_string($formfield);
+    }
+	
+	// Check der variablen
+    function unquote($formfield)
+    {
+        return stripslashes($formfield);
+    }
+	
+	function toLower($record) {
+		if(is_array($record)) {
+			foreach($record as $key => $val) {
+				$key = strtolower($key);
+				$out[$key] = $val;
 			}
-			
-			return mysql_real_escape_string($formfield);
+		}
+	return $out;
+	}
+   
+   
+   function insert($tablename,$form,$debug = 0)
+   {
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $sql_key .= "$key, ";
+        $sql_value .= "'".$this->check($value)."', ";
+  		 }
+   	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
+    $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+    
+   	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
+   
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+      }
+   }
+   
+   function update($tablename,$form,$bedingung,$debug = 0)
+   {
+   
+     if(is_array($form)){
+       foreach($form as $key => $value) 
+	    {
+	    $insql .= "$key = '".$this->check($value)."', ";
+  		 }
+   	        $insql = substr($insql,0,strlen($insql) - 2);
+   	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
+  		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
+  		 $this->query($sql);
+  		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
+       }
+   }
+   
+   function closeConn() {
+   
+   }
+   
+   function freeResult() {
+   
+   
+   }
+   
+   function delete() {
+   
+   }
+   
+   function Transaction($action) {
+   //action = begin, commit oder rollback
+   
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function createTable($table_name,$columns) {
+   $index = "";
+   $sql = "CREATE TABLE $table_name (";
+   foreach($columns as $col){
+        $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+   
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
         }
-		
-		// Check der variablen
-        function unquote($formfield)
-        {
-            return stripslashes($formfield);
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   $sql .= ")";
+   
+   $this->query($sql);
+   return true;
+   }
+   
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   function alterTable($table_name,$columns) {
+   $index = "";
+   $sql = "ALTER TABLE $table_name ";
+   foreach($columns as $col){
+        if($col["action"] == 'add') {
+            $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'alter') {
+            $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
+        } elseif ($col["action"] == 'drop') {
+            $sql .= "DROP ".$col["name"]." ";
         }
-		
-		function toLower($record) {
-			if(is_array($record)) {
-				foreach($record as $key => $val) {
-					$key = strtolower($key);
-					$out[$key] = $val;
-				}
-			}
-		return $out;
-		}
-       
-       
-       function insert($tablename,$form,$debug = 0)
-       {
-         if(is_array($form)){
-	       foreach($form as $key => $value) 
-   		    {
-   		    $sql_key .= "$key, ";
-            $sql_value .= "'".$this->check($value)."', ";
-      		 }
-       	$sql_key = substr($sql_key,0,strlen($sql_key) - 2);
-        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
+        if($col["action"] != 'drop') {  
+        if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
+        if($col["notNull"] == true) {
+            $sql .= "NOT NULL ";
+        } else {
+            $sql .= "NULL ";
+        }
+        if($col["autoInc"] == true) $sql .= "auto_increment ";
+        $sql.= ",";
+        // key Definitionen
+        if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
+        if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
+        if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
+        }
+   }
+   $sql .= $index;
+   $sql = substr($sql,0,-1);
+   
+   //die($sql);
+   $this->query($sql);
+   return true;
+   }
+   
+   function dropTable($table_name) {
+   $this->check($table_name);
+   $sql = "DROP TABLE '". $table_name."'";
+   return $this->query($sql);
+   }
+   
+   // gibt Array mit Tabellennamen zurück
+   function getTables($database_name = '') {
+   	
+		if($database_name == '') $database_name = $this->dbName;
+        $result = mysql_list_tables($database_name);
+        for ($i = 0; $i < mysql_num_rows($result); $i++) {
+            $tb_names[$i] = mysql_tablename($result, $i);
+        }
+        return $tb_names;       
+   }
+   
+   // gibt Feldinformationen zur Tabelle zurück
+   /*
+   $columns = array(action =>   add | alter | drop
+                    name =>     Spaltenname
+                    name_new => neuer Spaltenname, nur bei 'alter' belegt
+                    type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+                    typeValue => Wert z.B. bei Varchar
+                    defaultValue =>  Default Wert
+                    notNull =>   true | false
+                    autoInc =>   true | false
+                    option =>   unique | primary | index)
+   
+   
+   */
+   
+   function tableInfo($table_name) {
+   
+   global $go_api,$go_info;
+   // Tabellenfelder einlesen
+    
+    if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
+    foreach($rows as $row) {
+        $name = $row[0];
+        $default = $row[4];
+        $key = $row[3];
+        $extra = $row[5];
+        $isnull = $row[2];
+        $type = $row[1];
+    
         
-       	$sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
-       
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-          }
-       }
-       
-       function update($tablename,$form,$bedingung,$debug = 0)
-       {
-       
-	     if(is_array($form)){
-           foreach($form as $key => $value) 
-   		    {
-   		    $insql .= "$key = '".$this->check($value)."', ";
-      		 }
-       	        $insql = substr($insql,0,strlen($insql) - 2);
-       	        $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
-      		 if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
-      		 $this->query($sql);
-      		 if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
-           }
-       }
-       
-       function closeConn() {
-       
-       }
-       
-       function freeResult() {
-       
-       
-       }
-       
-       function delete() {
-       
-       }
-       
-       function Transaction($action) {
-       //action = begin, commit oder rollback
-       
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function createTable($table_name,$columns) {
-       $index = "";
-       $sql = "CREATE TABLE $table_name (";
-       foreach($columns as $col){
-            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-       
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       $sql .= ")";
-       
-       $this->query($sql);
-       return true;
-       }
-       
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       function alterTable($table_name,$columns) {
-       $index = "";
-       $sql = "ALTER TABLE $table_name ";
-       foreach($columns as $col){
-            if($col["action"] == 'add') {
-                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'alter') {
-                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
-            } elseif ($col["action"] == 'drop') {
-                $sql .= "DROP ".$col["name"]." ";
-            }
-            if($col["action"] != 'drop') {  
-            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
-            if($col["notNull"] == true) {
-                $sql .= "NOT NULL ";
-            } else {
-                $sql .= "NULL ";
-            }
-            if($col["autoInc"] == true) $sql .= "auto_increment ";
-            $sql.= ",";
-            // key Definitionen
-            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
-            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
-            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
-            }
-       }
-       $sql .= $index;
-       $sql = substr($sql,0,-1);
-       
-       //die($sql);
-       $this->query($sql);
-       return true;
-       }
-       
-       function dropTable($table_name) {
-       $this->check($table_name);
-       $sql = "DROP TABLE '". $table_name."'";
-       return $this->query($sql);
-       }
-       
-       // gibt Array mit Tabellennamen zurück
-       function getTables($database_name = '') {
-	   	
-			if($database_name == '') $database_name = $this->dbName;
-            $result = mysql_list_tables($database_name);
-            for ($i = 0; $i < mysql_num_rows($result); $i++) {
-                $tb_names[$i] = mysql_tablename($result, $i);
-            }
-            return $tb_names;       
-       }
-       
-       // gibt Feldinformationen zur Tabelle zurück
-       /*
-       $columns = array(action =>   add | alter | drop
-                        name =>     Spaltenname
-                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-                        typeValue => Wert z.B. bei Varchar
-                        defaultValue =>  Default Wert
-                        notNull =>   true | false
-                        autoInc =>   true | false
-                        option =>   unique | primary | index)
-       
-       
-       */
-       
-       function tableInfo($table_name) {
-       
-       global $go_api,$go_info;
-       // Tabellenfelder einlesen
+        $column = array();
+    
+        $column["name"] = $name;
+        //$column["type"] = $type;
+        $column["defaultValue"] = $default;
+        if(stristr($key,"PRI")) $column["option"] = "primary";
+        if(stristr($isnull,"YES")) {
+            $column["notNull"] = false;
+        } else {
+           $column["notNull"] = true; 
+        }
+        if($extra == 'auto_increment') $column["autoInc"] = true;
         
-        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
-        foreach($rows as $row) {
-            $name = $row[0];
-            $default = $row[4];
-            $key = $row[3];
-            $extra = $row[5];
-            $isnull = $row[2];
-            $type = $row[1];
         
-            
-            $column = array();
+        // Type in Metatype umsetzen
         
-            $column["name"] = $name;
-            //$column["type"] = $type;
-            $column["defaultValue"] = $default;
-            if(stristr($key,"PRI")) $column["option"] = "primary";
-            if(stristr($isnull,"YES")) {
-                $column["notNull"] = false;
-            } else {
-               $column["notNull"] = true; 
-            }
-            if($extra == 'auto_increment') $column["autoInc"] = true;
-            
-            
-            // Type in Metatype umsetzen
-            
-            if(stristr($type,"int(")) $metaType = 'int32';
-            if(stristr($type,"bigint")) $metaType = 'int64';
-            if(stristr($type,"char")) {
-                $metaType = 'char';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"varchar")) {
-                $metaType = 'varchar';
-                $tmp_typeValue = explode('(',$type);
-                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
-            }
-            if(stristr($type,"text")) $metaType = 'text';
-            if(stristr($type,"double")) $metaType = 'double';
-            if(stristr($type,"blob")) $metaType = 'blob';
-            
-            
-            $column["type"] = $metaType;
-            
-        $columns[] = $column;
+        if(stristr($type,"int(")) $metaType = 'int32';
+        if(stristr($type,"bigint")) $metaType = 'int64';
+        if(stristr($type,"char")) {
+            $metaType = 'char';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
         }
-            return $columns;
-        } else {
-            return false;
+        if(stristr($type,"varchar")) {
+            $metaType = 'varchar';
+            $tmp_typeValue = explode('(',$type);
+            $column["typeValue"] = substr($tmp_typeValue[1],0,-1);  
         }
+        if(stristr($type,"text")) $metaType = 'text';
+        if(stristr($type,"double")) $metaType = 'double';
+        if(stristr($type,"blob")) $metaType = 'blob';
         
         
-        //$this->createTable('tester',$columns);
+        $column["type"] = $metaType;
         
-        /*
-        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
-        $fields = mysql_num_fields ($result);
-        $i = 0;
-        $table = mysql_field_table ($result, $i);
-        while ($i < $fields) {
-            $name  = mysql_field_name  ($result, $i);
-            $type  = mysql_field_type  ($result, $i);
-            $len   = mysql_field_len   ($result, $i);
-            $flags = mysql_field_flags ($result, $i);
-            print_r($flags);
-            
-            $columns = array(name => $name,
-                        type =>     "",
-                        defaultValue =>  "",
-                        isnull =>   1,
-                        option =>   "");
-            $returnvar[] = $columns;
-            
-            $i++;
-        }
-        */
+    $columns[] = $column;
+    }
+        return $columns;
+    } else {
+        return false;
+    }
+    
+    
+    //$this->createTable('tester',$columns);
+    
+    /*
+    $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
+    $fields = mysql_num_fields ($result);
+    $i = 0;
+    $table = mysql_field_table ($result, $i);
+    while ($i < $fields) {
+        $name  = mysql_field_name  ($result, $i);
+        $type  = mysql_field_type  ($result, $i);
+        $len   = mysql_field_len   ($result, $i);
+        $flags = mysql_field_flags ($result, $i);
+        print_r($flags);
         
+        $columns = array(name => $name,
+                    type =>     "",
+                    defaultValue =>  "",
+                    isnull =>   1,
+                    option =>   "");
+        $returnvar[] = $columns;
         
-       
-       }
-       
-       function mapType($metaType,$typeValue) {
-       global $go_api;
-       $metaType = strtolower($metaType);
-       switch ($metaType) {
-       case 'int16':
-            return 'smallint';
-       break;
-       case 'int32':
-            return 'int';
-       break;
-       case 'int64':
-            return 'bigint';
-       break;
-       case 'double':
-            return 'double';
-       break;
-       case 'char':
-            return 'char';
-       break;
-       case 'varchar':
-            if($typeValue < 1) die("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
-            return 'varchar('.$typeValue.')';
-       break;
-       case 'text':
-            return 'text';
-       break;
-       case 'blob':
-            return 'blob';
-       break;
-       }
-       }
-		
-	}
+        $i++;
+    }
+    */
+    
+    
+   
+   }
+   
+   function mapType($metaType,$typeValue) {
+   global $go_api;
+   $metaType = strtolower($metaType);
+   switch ($metaType) {
+   case 'int16':
+        return 'smallint';
+   break;
+   case 'int32':
+        return 'int';
+   break;
+   case 'int64':
+        return 'bigint';
+   break;
+   case 'double':
+        return 'double';
+   break;
+   case 'char':
+        return 'char';
+   break;
+   case 'varchar':
+        if($typeValue < 1) die("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
+        return 'varchar('.$typeValue.')';
+   break;
+   case 'text':
+        return 'text';
+   break;
+   case 'blob':
+        return 'blob';
+   break;
+   }
+   }
+	
+}
 
 ?>
\ No newline at end of file
diff --git a/server/lib/classes/file.inc.php b/server/lib/classes/file.inc.php
index e0bd12f6b..67a973ce6 100644
--- a/server/lib/classes/file.inc.php
+++ b/server/lib/classes/file.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,165 +28,166 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class file{
-
-function rf($file){
-  global $app;
-  clearstatcache();
-  if(!$fp = fopen ($file, "rb")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    if(filesize($file) > 0){
-      $content = fread($fp, filesize($file));
-    } else {
-      $content = "";
-    }
-    fclose($fp);
-    return $content;
-  }
-}
-
-function wf($file, $content){
-  global $app;
-  $this->mkdirs(dirname($file));
-  if(!$fp = fopen ($file, "wb")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    fwrite($fp,$content);
-    fclose($fp);
-    return true;
-  }
-}
-
-function af($file, $content){
-  global $app;
-  $this->mkdirs(dirname($file));
-  if(!$fp = fopen ($file, "ab")){
-    $app->log("WARNING: could not open file ".$file, 2);
-    return false;
-  } else {
-    fwrite($fp,$content);
-    fclose($fp);
-    return true;
-  }
-}
-
-function no_comments($file, $comment = '#'){
-  $content = $this->unix_nl($this->rf($file));
-  $lines = explode("\n", $content);
-  if(!empty($lines)){
-    foreach($lines as $line){
-      if(strstr($line, $comment)){
-        $pos = strpos($line, $comment);
-        if($pos != 0){
-          $new_lines[] = substr($line,0,$pos);
+    
+    function rf($file){
+      global $app;
+      clearstatcache();
+      if(!$fp = fopen ($file, "rb")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
+      } else {
+        if(filesize($file) > 0){
+          $content = fread($fp, filesize($file));
         } else {
-          $new_lines[] = "";
+          $content = "";
         }
+        fclose($fp);
+        return $content;
+      }
+    }
+    
+    function wf($file, $content){
+      global $app;
+      $this->mkdirs(dirname($file));
+      if(!$fp = fopen ($file, "wb")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
       } else {
-        $new_lines[] = $line;
+        fwrite($fp,$content);
+        fclose($fp);
+        return true;
       }
     }
-  }
-  if(is_array($new_lines)){
-    $content_without_comments = implode("\n", $new_lines);
-    $new_lines = NULL;
-    return $content_without_comments;
-  } else {
-    return "";
-  }
-}
-
-function manual_entries($file, $separator = '#### MAKE MANUAL ENTRIES BELOW THIS LINE! ####'){
-  if(is_file($file)){
-    $content = $this->rf($file);
-    $parts = explode($separator, $content);
-    $manual = "\n".trim($parts[1]);
-    return $manual;
-  } else {
-    return "";
-  }
-}
-
-function remove_blank_lines($input, $file = 1){
-  //Leerzeilen löschen
-  if($file){
-    $content = $this->unix_nl($this->rf($input));
-  } else {
-    $content = $input;
-  }
-  $lines = explode("\n", $content);
-  if(!empty($lines)){
-    foreach($lines as $line){
-      if(trim($line) != "") $new_lines[] = $line;
+    
+    function af($file, $content){
+      global $app;
+      $this->mkdirs(dirname($file));
+      if(!$fp = fopen ($file, "ab")){
+        $app->log("WARNING: could not open file ".$file, 2);
+        return false;
+      } else {
+        fwrite($fp,$content);
+        fclose($fp);
+        return true;
+      }
     }
-  }
-  if(is_array($new_lines)){
-    $content = implode("\n", $new_lines);
-  } else {
-    $content = "";
-  }
-  if($file){
-    $this->wf($input, $content);
-  } else {
-    return $content;
-  }
-}
-
-function unix_nl($input){
-  $output = str_replace("\r\n", "\n", $input);
-  $output = str_replace("\r", "\n", $output);
-  return $output;
-}
-
-function fileowner($file){
-  $owner_id = fileowner($file);
-  clearstatcache();
-  return $owner_id;
-}
-
-function mkdirs($strPath, $mode = '0755'){
-  // Verzeichnisse rekursiv erzeugen
-  if(is_dir($strPath)) return true;
-  $pStrPath = dirname($strPath);
-  if(!$this->mkdirs($pStrPath, $mode)) return false;
-  $old_umask = umask(0);
-  $ret_val = mkdir($strPath, octdec($mode));
-  umask($old_umask);
-  return $ret_val;
-}
-
-function find_includes($file){
-  ob_start();
-  $httpd_root = system('httpd -V | awk -F"\"" \'$1==" -D HTTPD_ROOT="{print $2}\'');
-  ob_end_clean();
-  clearstatcache();
-  if(is_file($file) && filesize($file) > 0){
-    $includes[] = $file;
-    $inhalt = $this->unix_nl($this->no_comments($file));
-    $lines = explode("\n", $inhalt);
-    if(!empty($lines)){
-      foreach($lines as $line){
-        if(stristr($line, "include ")){
-          $include_file = str_replace("\n", "", trim(shell_exec("echo \"$line\" | awk '{print \$2}'")));
-          if(substr($include_file,0,1) != "/"){
-            $include_file = $httpd_root."/".$include_file;
-          }
-          if(is_file($include_file)){
-            if($further_includes = $this->find_includes($include_file)){
-              $includes = array_merge($includes, $further_includes);
+    
+    function no_comments($file, $comment = '#'){
+      $content = $this->unix_nl($this->rf($file));
+      $lines = explode("\n", $content);
+      if(!empty($lines)){
+        foreach($lines as $line){
+          if(strstr($line, $comment)){
+            $pos = strpos($line, $comment);
+            if($pos != 0){
+              $new_lines[] = substr($line,0,$pos);
+            } else {
+              $new_lines[] = "";
             }
           } else {
-            if(strstr($include_file, "*")){
-              $more_files = explode("\n", shell_exec("ls -l $include_file | awk '{print \$9}'"));
-              if(!empty($more_files)){
-                foreach($more_files as $more_file){
-                  if(is_file($more_file)){
-                    if($further_includes = $this->find_includes($more_file)){
-                      $includes = array_merge($includes, $further_includes);
+            $new_lines[] = $line;
+          }
+        }
+      }
+      if(is_array($new_lines)){
+        $content_without_comments = implode("\n", $new_lines);
+        $new_lines = NULL;
+        return $content_without_comments;
+      } else {
+        return "";
+      }
+    }
+    
+    function manual_entries($file, $separator = '#### MAKE MANUAL ENTRIES BELOW THIS LINE! ####'){
+      if(is_file($file)){
+        $content = $this->rf($file);
+        $parts = explode($separator, $content);
+        $manual = "\n".trim($parts[1]);
+        return $manual;
+      } else {
+        return "";
+      }
+    }
+    
+    function remove_blank_lines($input, $file = 1){
+      //Leerzeilen löschen
+      if($file){
+        $content = $this->unix_nl($this->rf($input));
+      } else {
+        $content = $input;
+      }
+      $lines = explode("\n", $content);
+      if(!empty($lines)){
+        foreach($lines as $line){
+          if(trim($line) != "") $new_lines[] = $line;
+        }
+      }
+      if(is_array($new_lines)){
+        $content = implode("\n", $new_lines);
+      } else {
+        $content = "";
+      }
+      if($file){
+        $this->wf($input, $content);
+      } else {
+        return $content;
+      }
+    }
+    
+    function unix_nl($input){
+      $output = str_replace("\r\n", "\n", $input);
+      $output = str_replace("\r", "\n", $output);
+      return $output;
+    }
+    
+    function fileowner($file){
+      $owner_id = fileowner($file);
+      clearstatcache();
+      return $owner_id;
+    }
+    
+    function mkdirs($strPath, $mode = '0755'){
+      // Verzeichnisse rekursiv erzeugen
+      if(is_dir($strPath)) return true;
+      $pStrPath = dirname($strPath);
+      if(!$this->mkdirs($pStrPath, $mode)) return false;
+      $old_umask = umask(0);
+      $ret_val = mkdir($strPath, octdec($mode));
+      umask($old_umask);
+      return $ret_val;
+    }
+    
+    function find_includes($file){
+      ob_start();
+      $httpd_root = system('httpd -V | awk -F"\"" \'$1==" -D HTTPD_ROOT="{print $2}\'');
+      ob_end_clean();
+      clearstatcache();
+      if(is_file($file) && filesize($file) > 0){
+        $includes[] = $file;
+        $inhalt = $this->unix_nl($this->no_comments($file));
+        $lines = explode("\n", $inhalt);
+        if(!empty($lines)){
+          foreach($lines as $line){
+            if(stristr($line, "include ")){
+              $include_file = str_replace("\n", "", trim(shell_exec("echo \"$line\" | awk '{print \$2}'")));
+              if(substr($include_file,0,1) != "/"){
+                $include_file = $httpd_root."/".$include_file;
+              }
+              if(is_file($include_file)){
+                if($further_includes = $this->find_includes($include_file)){
+                  $includes = array_merge($includes, $further_includes);
+                }
+              } else {
+                if(strstr($include_file, "*")){
+                  $more_files = explode("\n", shell_exec("ls -l $include_file | awk '{print \$9}'"));
+                  if(!empty($more_files)){
+                    foreach($more_files as $more_file){
+                      if(is_file($more_file)){
+                        if($further_includes = $this->find_includes($more_file)){
+                          $includes = array_merge($includes, $further_includes);
+                        }
+                      }
                     }
                   }
                 }
@@ -194,126 +196,124 @@ function find_includes($file){
           }
         }
       }
+      if(is_array($includes)){
+        $includes = array_unique($includes);
+        return $includes;
+      } else {
+        return false;
+      }
     }
-  }
-  if(is_array($includes)){
-    $includes = array_unique($includes);
-    return $includes;
-  } else {
-    return false;
-  }
-}
-
-function edit_dist($var, $val){
-  global $$var;
-  $files = array("/root/ispconfig/dist.inc.php");
-  foreach($files as $file){
-    if(is_file($file)){
-      $file_content = $this->unix_nl($this->rf($file));
-      $lines = explode("\n", $file_content);
-      for($i=0;$i<sizeof($lines);$i++){
-        $parts = explode("=", $lines[$i]);
-        if($parts[0] == $var || $parts[0] == '$'.$var.' '){
-          $parts[1] = str_replace($$var, $val, $parts[1]);
+    
+    function edit_dist($var, $val){
+      global $$var;
+      $files = array("/root/ispconfig/dist.inc.php");
+      foreach($files as $file){
+        if(is_file($file)){
+          $file_content = $this->unix_nl($this->rf($file));
+          $lines = explode("\n", $file_content);
+          for($i=0;$i<sizeof($lines);$i++){
+            $parts = explode("=", $lines[$i]);
+            if($parts[0] == $var || $parts[0] == '$'.$var.' '){
+              $parts[1] = str_replace($$var, $val, $parts[1]);
+            }
+            $lines[$i] = implode("=", $parts);
+          }
+          $file_content = implode("\n", $lines);
+          $this->wf($file, $file_content);
         }
-        $lines[$i] = implode("=", $parts);
       }
-      $file_content = implode("\n", $lines);
-      $this->wf($file, $file_content);
     }
-  }
-}
-
-function getDirectoryListing($dirname, $sortorder = "a", $show_subdirs = 0, $show_subdirfiles = 0, $exts = "", $ext_save = 1){
-// This function will return an array with filenames based on the criteria you can set in the variables
-// @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same)
-// @show_subdirs : 0 for NO, 1 for YES - meaning it will show the names of subdirectories if there are any
-// Logically subdirnames will not be checked for the required extentions
-// @show_subdirfiles : 0 for NO, 1 for YES - meaning it will show files from the subdirs
-// Files from subdirs will be prefixed with the subdir name and checked for the required extentions.
-// @exts can be either a string or an array, if not passed to the function, then the default will be a check for common image files
-// If exts is set to "all" then all extentions are allowed
-// @ext_save : 1 for YES, 0 for NO - meaning it will filter out system files or not (such as .htaccess)
-
-   $dirname = realpath($dirname);
-   if (!$exts || empty($exts) || $exts == "") {
-       $exts = array("jpg", "gif", "jpeg", "png");
-   }
-   if ($handle = opendir($dirname)) {
-       $filelist = array();
-       while (false !== ($file = readdir($handle))) {
-
-           // Filter out higher directory references
-           if ($file != "." && $file != "..") {
-               // Only look at directories or files, filter out symbolic links
-               if ( filetype ($dirname."/".$file) != "link") {
-                   // If it's a file, check against valid extentions and add to the list
-                   if ( filetype ($dirname."/".$file) == "file" ) {
-                       if ($this->checkFileExtension($file, $exts, $ext_save)) {
-                                       $filelist[] = $file;
-                       }
-                   }
-                   // If it's a directory and either subdirs should be listed or files from subdirs add relevant names to the list
-                   else if ( filetype ($dirname."/".$file) == "dir" && ($show_subdirs == 1 || $show_subdirfiles == 1)) {
-                       if ($show_subdirs == 1) {
-                           $filelist[] = $file;
+    
+    function getDirectoryListing($dirname, $sortorder = "a", $show_subdirs = 0, $show_subdirfiles = 0, $exts = "", $ext_save = 1){
+    // This function will return an array with filenames based on the criteria you can set in the variables
+    // @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same)
+    // @show_subdirs : 0 for NO, 1 for YES - meaning it will show the names of subdirectories if there are any
+    // Logically subdirnames will not be checked for the required extentions
+    // @show_subdirfiles : 0 for NO, 1 for YES - meaning it will show files from the subdirs
+    // Files from subdirs will be prefixed with the subdir name and checked for the required extentions.
+    // @exts can be either a string or an array, if not passed to the function, then the default will be a check for common image files
+    // If exts is set to "all" then all extentions are allowed
+    // @ext_save : 1 for YES, 0 for NO - meaning it will filter out system files or not (such as .htaccess)
+    
+       $dirname = realpath($dirname);
+       if (!$exts || empty($exts) || $exts == "") {
+           $exts = array("jpg", "gif", "jpeg", "png");
+       }
+       if ($handle = opendir($dirname)) {
+           $filelist = array();
+           while (false !== ($file = readdir($handle))) {
+    
+               // Filter out higher directory references
+               if ($file != "." && $file != "..") {
+                   // Only look at directories or files, filter out symbolic links
+                   if ( filetype ($dirname."/".$file) != "link") {
+                       // If it's a file, check against valid extentions and add to the list
+                       if ( filetype ($dirname."/".$file) == "file" ) {
+                           if ($this->checkFileExtension($file, $exts, $ext_save)) {
+                                           $filelist[] = $file;
+                           }
                        }
-                       if ($show_subdirfiles == 1) {
-                           $subdirname = $file;
-                           $subdirfilelist = $this->getDirectoryListing($dirname."/".$subdirname."/", $sortorder, $show_subdirs, $show_subdirfiles, $exts, $ext_save);
-                           for ($i = 0 ; $i < count($subdirfilelist) ; $i++) {
-                               $subdirfilelist[$i] = $subdirname."/".$subdirfilelist[$i];
+                       // If it's a directory and either subdirs should be listed or files from subdirs add relevant names to the list
+                       else if ( filetype ($dirname."/".$file) == "dir" && ($show_subdirs == 1 || $show_subdirfiles == 1)) {
+                           if ($show_subdirs == 1) {
+                               $filelist[] = $file;
                            }
-                           $filelist = array_merge($filelist, $subdirfilelist);
+                           if ($show_subdirfiles == 1) {
+                               $subdirname = $file;
+                               $subdirfilelist = $this->getDirectoryListing($dirname."/".$subdirname."/", $sortorder, $show_subdirs, $show_subdirfiles, $exts, $ext_save);
+                               for ($i = 0 ; $i < count($subdirfilelist) ; $i++) {
+                                   $subdirfilelist[$i] = $subdirname."/".$subdirfilelist[$i];
+                               }
+                               $filelist = array_merge($filelist, $subdirfilelist);
+                           }
+    
                        }
-
+    
                    }
-
                }
            }
-       }
-       closedir($handle);
-
-       // Sort the results
-       if (count($filelist) > 1) {
-           natcasesort($filelist);
-           if ($sortorder == "d" || $sortorder == "r" ) {
-               $filelist = array_reverse($filelist, TRUE);
+           closedir($handle);
+    
+           // Sort the results
+           if (count($filelist) > 1) {
+               natcasesort($filelist);
+               if ($sortorder == "d" || $sortorder == "r" ) {
+                   $filelist = array_reverse($filelist, TRUE);
+               }
            }
+           return $filelist;
        }
-       return $filelist;
-   }
-   else {
-       return false;
-   }
-}
-
-function checkFileExtension($filename, $exts, $ext_save = 1){
-   $passed = FALSE;
-   if ($ext_save == 1) {
-       if (preg_match("/^\./", $filename)) {
-           return $passed;
+       else {
+           return false;
        }
-   }
-   if ($exts == "all") {
-                   $passed = TRUE;
-       return $passed;
-   }
-   if (is_string($exts)) {
-       if (eregi("\.". $exts ."$", $filename)) {
+    }
+    
+    function checkFileExtension($filename, $exts, $ext_save = 1){
+       $passed = FALSE;
+       if ($ext_save == 1) {
+           if (preg_match("/^\./", $filename)) {
+               return $passed;
+           }
+       }
+       if ($exts == "all") {
                        $passed = TRUE;
            return $passed;
        }
-   } else if (is_array($exts)) {
-       foreach ($exts as $theExt) {
-           if (eregi("\.". $theExt ."$", $filename)) {
-               $passed = TRUE;
+       if (is_string($exts)) {
+           if (eregi("\.". $exts ."$", $filename)) {
+                           $passed = TRUE;
                return $passed;
            }
+       } else if (is_array($exts)) {
+           foreach ($exts as $theExt) {
+               if (eregi("\.". $theExt ."$", $filename)) {
+                   $passed = TRUE;
+                   return $passed;
+               }
+           }
        }
-   }
-   return $passed;
-}
+       return $passed;
+    }
 
 }
 ?>
\ No newline at end of file
diff --git a/server/lib/classes/getconf.inc.php b/server/lib/classes/getconf.inc.php
index fd0c08864..7bff61fc9 100644
--- a/server/lib/classes/getconf.inc.php
+++ b/server/lib/classes/getconf.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/ini_parser.inc.php b/server/lib/classes/ini_parser.inc.php
index 349990f19..05a7259fa 100644
--- a/server/lib/classes/ini_parser.inc.php
+++ b/server/lib/classes/ini_parser.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/mod_mail_base.inc.php b/server/lib/classes/mod_mail_base.inc.php
index b16919356..01ffda575 100644
--- a/server/lib/classes/mod_mail_base.inc.php
+++ b/server/lib/classes/mod_mail_base.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2006, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/lib/classes/services.inc.php b/server/lib/classes/services.inc.php
index 260d3f0ed..b4cccede0 100644
--- a/server/lib/classes/services.inc.php
+++ b/server/lib/classes/services.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class services {
 
 	var $registered_services = array();
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index f6fce7782..da7e2d0a8 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1,6 +1,7 @@
 <?php
+
 /*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,7 +28,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-
 class system{
 
 	var $FILE = "/root/ispconfig/scripts/lib/classes/ispconfig_system.lib.php";
diff --git a/server/lib/classes/tpl.inc.php b/server/lib/classes/tpl.inc.php
index e16f0dcb1..f4b40632c 100644
--- a/server/lib/classes/tpl.inc.php
+++ b/server/lib/classes/tpl.inc.php
@@ -1,5 +1,4 @@
 <?php
-
 /* vim: set expandtab tabstop=4 shiftwidth=4: */
 // +----------------------------------------------------------------------+
 // | PHP version 4.0                                                      |
diff --git a/server/mods-available/client_module.inc.php b/server/mods-available/client_module.inc.php
index a70cbdfcb..4fdcd4e0a 100644
--- a/server/mods-available/client_module.inc.php
+++ b/server/mods-available/client_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/mods-available/database_module.inc.php b/server/mods-available/database_module.inc.php
index 740e8f8cf..0d6be2a48 100644
--- a/server/mods-available/database_module.inc.php
+++ b/server/mods-available/database_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 342d76af1..95025771d 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -27,6 +27,7 @@ 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.
 */
+
 class monitor_core_module {
     /* TODO: this should be a config - var instead of a "constant" */
     var $interval = 5; // do the monitoring every 5 minutes
diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php
index 3c1568d63..697b9378c 100644
--- a/server/plugins-available/firewall_plugin.inc.php
+++ b/server/plugins-available/firewall_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index d90482185..ca3651a8f 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php
index 94e37b44b..277d47456 100644
--- a/server/plugins-available/network_settings_plugin.inc.php
+++ b/server/plugins-available/network_settings_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 6a35f9593..adba029e3 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php
index c3caf63b9..cc10859c5 100644
--- a/server/plugins-available/software_update_plugin.inc.php
+++ b/server/plugins-available/software_update_plugin.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
-- 
GitLab